UART управление Ардуино командой из монитора порта

На этом форуме Вы можете задать вопросы знатокам программы и автору.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

Когда знакомился с Ардуино, через UART подачей 1 с компорта зажигал диод на 13 пине. При подаче "0" выключал диод. Заливал скетч:
[spoiler]

Код: Выделить всё

int val; // освобождаем память в контроллере для переменой

void setup() {
   Serial.begin(9600); // подключаем последовательный порт
   pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
    // проверяем, поступают ли какие-то команды
   if (Serial.available()) {

       val = Serial.read(); // переменная val равна полученной команде

       if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
       if (val == '0') {digitalWrite(13, LOW);} // при 0 выключаем светодиод

   }
}
[/spoiler]
Сегодня решил поэкспериментировать, нарисовал схему в FLPROG , залил в UNO , и диод не засвечивает.
Или FLPROG не умеет так?
UART прием переменная int.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

UART управление Ардуино командой из монитора порта

Сообщение Nikan »

.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Nikan 24 мар 2023, 01:49, всего редактировалось 1 раз.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

Nikan писал(а): 28 фев 2020, 21:32 не тот блок выбран
увы фокус не удался -не зажигает диод.
Добавил в схему блок передачи, для контроля того что отправляю.
Отправляю 1 в мониторе порта отображается 1 , но диод не включается.
И еще одна странность ,если отправляю 11 то в мониторе вижу 1.
Если 22 то вижу 2.
UART прием переменная byte_V2_FLP6.3.1.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

UART управление Ардуино командой из монитора порта

Сообщение Sancho »

[ref]EgorKa[/ref], Вы сравниваете число, String, и полученный, как-будто, байт, типа 1.
Поменяйте 1 в компараторе "1" = ASCII dec...( смотреть по таблице :) 49 )

Отправлено спустя 2 минуты 24 секунды:
EgorKa писал(а): 29 фев 2020, 16:07 И еще одна странность ,если отправляю 11 то в мониторе вижу 1.
Если 22 то вижу 2.
Отправьте 12, 21
У Вас же стоит отправка при изменении :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

Sancho писал(а): 29 фев 2020, 16:18 Вы сравниваете число, String, и полученный, как-будто, байт, типа 1.
откуда там String, если я выбрал байт значит и должен гонять байт. И странно что в блоке приема UART нет int.
Sancho писал(а): 29 фев 2020, 16:18 Поменяйте 1 в компараторе "1" = ASCII dec...( смотреть по таблице :) 49 )
вообще не понял юмора.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

UART управление Ардуино командой из монитора порта

Сообщение grin-mpx »

Так. От 0 до 9.
UART прием переменная string.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

[ref]grin-mpx[/ref], так пытался повторить в FLProg скеч из первого поста.
Похоже это большая проблема.

Отправлено спустя 4 минуты 10 секунд:
ваша схема не включает диод
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

UART управление Ардуино командой из монитора порта

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:48, всего редактировалось 1 раз.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

UART управление Ардуино командой из монитора порта

Сообщение grin-mpx »

Это из рабочего проекта.
UART прием переменная string-2flp.flp
Если не работает -ищите проблему у себя.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

Nikan писал(а): 29 фев 2020, 17:34 проверь что отправляеш в порт
как надо на картинке -
Ну, я то пытаюсь повторить в FLProg этот скетч
[spoiler]

Код: Выделить всё

int val; // освобождаем память в контроллере для переменой

void setup() {
   Serial.begin(9600); // подключаем последовательный порт
   pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
    // проверяем, поступают ли какие-то команды
   if (Serial.available()) {

       val = Serial.read(); // переменная val равна полученной команде

       if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
       if (val == '0') {digitalWrite(13, LOW);} // при 0 выключаем светодиод

   }
}
[/spoiler]

и использую соответственно монитор порта который в IDE
UART прием переменная byte.PNG
с монитора компорта FLProg как Вы показал диод включается.
Но это не то .
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

UART управление Ардуино командой из монитора порта

Сообщение Nikan »

.
Последний раз редактировалось Nikan 24 мар 2023, 01:48, всего редактировалось 1 раз.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

Nikan писал(а): 29 фев 2020, 18:27с чего вдруг?
ну, потому что с монитора порта из IDE не включает диод . А когда заливаю скетч из первого моего поста , то все работает.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

UART управление Ардуино командой из монитора порта

Сообщение Sancho »

[ref]EgorKa[/ref], Прочтите ЛС

Отправлено спустя 18 секунд:
[ref]EgorKa[/ref],
Sancho писал(а): 29 фев 2020, 16:18 EgorKa, Вы сравниваете число, String, и полученный, как-будто, байт, типа 1.
Поменяйте 1 в компараторе "1" = ASCII dec...( смотреть по таблице 49 )
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

grin-mpx писал(а): 29 фев 2020, 17:36 Это из рабочего проекта.

UART прием переменная string-2flp.flp
(83.16 КБ) 3 скачивания

Если не работает -ищите проблему у себя.
Вернуться к началу
разобрался, если отправлять 1 из монитора порта IDE то неработает. А если с монитора компорта FLProg ,то включается диод.
Т.е. работает не так как если я загружаю скетч написанный в IDE.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

UART управление Ардуино командой из монитора порта

Сообщение grin-mpx »

EgorKa писал(а): 29 фев 2020, 18:09 Ну, я то пытаюсь повторить в FLProg этот скетч
EgorKa писал(а): 29 фев 2020, 18:09 if (val == '1') // при 1 включаем светодиод
if (val == '0') // при 0 выключаем светодиод
Может потому, что в примере сравнивается не байт а char?
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

[ref=#ff8000]Sancho[/ref], личку глянул там какие то цифры. Но уже разобрался что скетч написанный в IDE
[spoiler]

Код: Выделить всё

int val; // освобождаем память в контроллере для переменой

void setup() {
   Serial.begin(9600); // подключаем последовательный порт
   pinMode(13, OUTPUT); // объявляем пин 13 как выход
}

void loop() {
    // проверяем, поступают ли какие-то команды
   if (Serial.available()) {

       val = Serial.read(); // переменная val равна полученной команде

       if (val == '1') {digitalWrite(13, HIGH);} // при 1 включаем светодиод
       if (val == '0') {digitalWrite(13, LOW);} // при 0 выключаем светодиод

   }
}
[/spoiler]
не возможно повторить в FLProg. Автор программы сильно много заморочек сделал. Проще ПБ сделать.
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

UART управление Ардуино командой из монитора порта

Сообщение grin-mpx »

EgorKa писал(а): 29 фев 2020, 18:42 не возможно повторить в FLProg
Хорошая шутка :D
Вы повторите так как в скетче. Сравнивали не байт полученный из UART а char?
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

grin-mpx писал(а): 29 фев 2020, 18:41 Может потому, что в примере сравнивается не байт а char?
Вернуться к началу
так компаратор не умеет сравнивать char. А кучу конвертаций делать это даааа...

Отправлено спустя 6 минут 34 секунды:
поставил выход char на блоке приема UART сравнивается с int на компараторе -не работает .

Отправлено спустя 2 минуты 44 секунды:
grin-mpx писал(а): 29 фев 2020, 18:45 Хорошая шутка :D
Вы повторите так как в скетче. Сравнивали не байт полученный из UART а char?
да какая же тут шутка.... вообще то это печальная практика :(
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

UART управление Ардуино командой из монитора порта

Сообщение grin-mpx »

Я вам выше скинул сравнение строк. Тот пример который вы выложили делался в IDE, следовательно по UART гоняли не HEX не DEC и не BIN, а скорее всего символы (строки). Если бы там сравнивались не символы а байты, то выглядело бы это так- if (val == 1)
EgorKa
Сержант
Сообщения: 217
Зарегистрирован: 09 мар 2019, 17:49
Имя: Egor

UART управление Ардуино командой из монитора порта

Сообщение EgorKa »

[ref]grin-mpx[/ref], да я и не спорю. Я же всего навсего хотел так же нарисовать в FLProg.
Ну ,все по другому в проге делается и как в IDE повторить не возможно. Это я понял.
Ответить

Вернуться в «Спросить у знатоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость