PHP + Arduino Uno и COM-порт
- Войдите на сайт для отправки комментариев
Вс, 06/11/2016 - 16:58
Всем привет, возникла такая проблема:
Нужно сделать с виду простецкую штуку - аля "турникет", суть в которой: оператор нажимает на кнопочку на сайте, ардуинка подхватывает и поворачивает серво-привод на 90 градусов, ждет 2 секунды и возвращает его обратно. Конкретно проблема - не могу передать значения (всего лишь цифру 1) с php-скрипта через COM-порт. Вернее они передаются, но ардуинка отказывается адекватно принимать их. Сначала она только двигала серво на 90 градусов, и отказывалась его возвращать, а после некоторых правок вообще ничего не делает. Для общения через COM использую библиотеку php_serial.class
Код скрипта
if (isset($_GET['test'])) { $serial = new phpSerial; $serial->deviceSet("COM4"); //com порт модема $serial->confBaudRate(9600); $serial->confCharacterLength(8); $serial->confParity("none"); $serial->confStopBits(1); $serial->confFlowControl("xon/xoff"); $serial->deviceOpen(); $serial->sendMessage(intval(1)); $serial->deviceClose();*/ }
Скетч ардуинки
#include <Servo.h> int command; Servo servo; void openT() { servo.write(90); } void closeT() { servo.write(180); } void setup() { Serial.begin(9600); servo.attach(9); servo.write(180); } void loop() { if(Serial.available()>0){ command = Serial.parseInt(); switch (command){ case 0: closeT(); break; case 1: openT(); delay(2000); closeT(); break; } } }
строка 8 должно быть может NONE??? в верхнем блоке, не думаю, что вы управляющие последовательности в потоке обрабатываете
И что приходит порт на ардуино?