Передача данных из php ардуине.

lectoff
Offline
Зарегистрирован: 15.08.2015

Пытаюсь передать ардуине число из php. Нагуглил что данные нужно передавать в ascii кодах.

По задумке диод на плате должен мигать столько раз сколько указано в числе, но впадает в бесконечный цикл и мигает постоянно. 

Подскажите куда копать? 

Код скетча:

int ledPin = 13;
int count = 0;
void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void flashes(int countFlashes, int ledPin) {
  for (int i=0; i < countFlashes; i++) {
    digitalWrite(ledPin, HIGH);
    delay(1000);
    digitalWrite(ledPin, LOW);
    delay(1000);
  }
}

void loop() {
  if (Serial.available() > 0) {
    count = Serial.read();
  }
  if (count > 0) {
    flashes(count, ledPin);
  }
  count = 0;
}

 

код PHP: 
<form method="post">
  <input type="number" name="numFlash">
  <input type="submit" value='Гори!'></input>
</form>

<?php 
  if(isset($_POST['numFlash'])){
    $numFlash = $_POST['numFlash'];
$fp = fopen("COM3", "w");
    fwrite($fp, ord($numFlash));
fclose($fp);
  }
?>

 

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

После получения ascii кода цифры нужно перевести её в целое число, например count &= 0xF; однако это без каких либо проверок, которые все таки нужно делать.

Alexander
Offline
Зарегистрирован: 25.04.2010