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??? в верхнем блоке, не думаю, что вы управляющие последовательности в потоке обрабатываете
И что приходит порт на ардуино?