Передача значений в переменные ардуино
- Войдите на сайт для отправки комментариев
Втр, 06/09/2016 - 12:07
Доброго, как можно с ПК передавать значения переменных в проесе работы контроллера?
Доброго, как можно с ПК передавать значения переменных в проесе работы контроллера?
По последовательному порту.
А как надо?
Можно через последовательный потр, через блютуз, через LAN (Wi-Fi), через глобальный Internet, через инфракрасный порт, звуком (по проводу или просто динамиком, а к контролллеру микрофон присобачить), визулаьно (вывести на экран ПК, а контроллеру камеру присобачить), ... и ещё 100500 способов.
Как надо-то?
кнопками можно
Разобрался, пока через порт а позже через WI-FI самое то будет, всем спасибо.
Да, незачто. Заходите ещё.
Подскажите вот эту конструкцию можно как то короче написать или другой способ? Не как в голову не что не приходит другое
if (Serial.available()) { val = Serial.read(); if (val == 'q') { digitalWrite(outputPin, HIGH); } if(val == 'e'){ digitalWrite(p, HIGH); } if (val == 'r') { digitalWrite(p, LOW); } if (val == 'w') { digitalWrite(outputPin, LOW); } }14 выходов будет и код еще длинее будет (
Подскажите вот эту конструкцию можно как то короче написать
короче, что бы было что?
switch(){} пгобовали?
switch(){} пробовали?
Да, но он только на включение пойдет, а у меня q включает w выключает
switch(){} пробовали?
Да, но он только на включение пойдет, а у меня q включает w выключает
и на выключение свич
Сойдет?
#define PIN_ARRAY_SIZE 10 #define OUTPUT_PIN_ONE 10 #define OUTPUT_PIN_TWO 11 #define OUTPUT_PIN_THREE 13 static const unsigned char pin_state[PIN_ARRAY_SIZE][3] = { {'q', OUTPUT_PIN_ONE, HIGH}, {'e', OUTPUT_PIN_TWO, HIGH}, {'r', OUTPUT_PIN_TWO, LOW}, {'w', OUTPUT_PIN_ONE, HIGH} } ... unsigned char i, val; val = Serial.read(); for ( i=0; i<PIN_ARRAY_SIZE && pin_state[i][0]<>0; i++ ) { if (pin_state[i][0]==val) { digitalWrite(pin_state[i][1], pin_state[i][2]); break; } }А без break можно изменять состояние сразу нескольких пинов.
Сойдет?
#define PIN_ARRAY_SIZE 10 #define OUTPUT_PIN_ONE 10 #define OUTPUT_PIN_TWO 11 #define OUTPUT_PIN_THREE 13 static const unsigned char pin_state[PIN_ARRAY_SIZE][3] = { {'q', OUTPUT_PIN_ONE, HIGH}, {'e', OUTPUT_PIN_TWO, HIGH}, {'r', OUTPUT_PIN_TWO, LOW}, {'w', OUTPUT_PIN_ONE, HIGH} } ... unsigned char i, val; val = Serial.read(); for ( i=0; i<PIN_ARRAY_SIZE && pin_state[i][0]<>0; i++ ) { if (pin_state[i][0]==val) { digitalWrite(pin_state[i][1], pin_state[i][2]); break; } }А без break можно изменять состояние сразу нескольких пинов.
Спасибо, буду пробывать и разбирать ваш пример.
А может быть Вам проще будет Bitlash использовать? Набирать, конечно, больше чем одну букву на команду, зато возможности несравнимо шире.
http://bitlash.net/
Возможно, но пока конкретной цели нету, пока эксперименты, а вообще планирую через wi fi управлять релюхами и датчиками, возможно даже с помощью приложения https://play.google.com/store/apps/details?id=esp8266.wifi.control
Так для экспериментов Bitlash и предназначен. Именно подергать выходы и почитать входы )
Тогда попробуем тоже ))