Официальный сайт компании Arduino по адресу arduino.cc
Arduino, Delphi, COMPort
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пт, 07/06/2019 - 07:20
Здравствуйте участники форума!
Пишу программу, которая управляет ардуино с компьютера (Вкл/Выкл реле, управляет шим сигналом).
Вопрос такой:
Мне надо отправлять условно говоря символ "0" чтобы вкл. реле1
если "1" то выл. реле1, управляю шим так: если выбрана скорость 85 то отправляю с Delphi "9", если 170 то "8" и тд.
проблема такая: могу отправлять только 0..9 после этого порт видет только последний символ, например "10" увидет как "0" подскажите как это исправить?
Общение делфи с ардуино происходит по средствам компонента comdrv32
Отправляю с Delphi так:
if RadioGroup1.ItemIndex=1 then begin CommPortDriver1.Sendstring('9'); end;
принемаю на Arduino так:
void loop() { if (Serial.available()>0) //{byte in_data=Serial.parseInt(); { int in_data=Serial.read()-'0'; if (in_data ==0) { Serial.println("Pin8 ON"); digitalWrite (pin8, HIGH); Serial.println("Pin10 ON"); digitalWrite (pin10, HIGH); } if (in_data ==1) { digitalWrite(DV_VKL, 0); Serial.println("Pin8 OFF"); digitalWrite (pin8, LOW); Serial.println("Pin10 OFF"); digitalWrite (pin10, LOW); }
наверное проблема с типом данных, в ардуино разобрался как менять данные с int на char а в делфи не пойму как?
Отправляю с Delphi так:
Отправь через обычный терминал.
Дельфи через ком порт выдаёт ascii char. Запусти вот это кусочек и посмотри что прилетает из компорта.
Проблема в том, что Serial.read считывает очередной (один!) байт из буфера последовательного порта. А вы, отправляя с компьютера строку из двух байт, рассчитываете получить их на Ардуино в виде числа.
Если вам для управления Ардуино хватит 256 значений, то отправляйте их таким способом:
CommPortDriver1.Sendstring(chr(ваше_значение));
А в скетче уберите - '0' в пятой строке.
VladimirTsibrov
ОГРОМНОЕ ВАМ СПАСИБО!СПАСИБО!СПАСИБО!СПАСИБО!СПАСИБО!СПАСИБО!
я так и думал, что надо с типом данных работать но не знал как в делфи конвнтировать тип данных.
ВСЕМ ВАМ БОЛЬШОЕ СПАСИБО!!!! ОЧЕНЬ ПОМОГЛИ!!!