Stap 4: Hoe werkt het & de Arduino-kant
Telkens wanneer die een knop op de pagina wordt ingedrukt, de case-statement gebeurt en de "file" (echt de poort) wordt geopend, gestoken schrijfmodus, een nummer van ASCII is geschreven, en dan het restaurant gesloten. Hebt u om het te sluiten telkens of anders zal het niet werken. Aan de Arduino-kant, gewoon ingelezen vanuit de seriële poort met behulp van Serial.read() in de loop. Ik gebruikte een grote als verklaring om te controleren voor elk ASCII-nummer, dus als 1 wordt verzonden, dan een ding doen, als 2 wordt verzonden, een andere doen, enz. Aangezien u een PHP-server uitvoert, kunt u de pagina op de server vanaf elke locatie in de wereld en het zal de controle van de Arduino. Hier is sommige voorbeeld arduino code die ik gebruikt om te controleren enkele motoren:#include < Servo.h >
Ten eerste, de servo's instellen
Servo servo1;
Servo servo2;
int debugPin = 13; gebruikt voor een led voor het testen van spullen
int motor1Pin = 9; het nummer van de poort van de eerste motor
int motor2Pin = 10; het nummer van de poort van de tweede motor
int usbnumber = 0; Deze variabele bevat wat we op dit moment lezen van seriële
void setup {//call deze ene keer aan het begin
pinMode (motor1Pin, OUTPUT);
pinMode (debugPin, OUTPUT);
pinMode (motor2Pin, OUTPUT);
servo1.attach(motor1Pin,1000,2000);
servo2.attach(motor2Pin,1000,2000);
Serial.begin(9600); opstarten seriële poort
}
void loop {//main lus
Als (Serial.available() > 0) {//if er is iets op de seriële poort, lezen
usbnumber = Serial.read(); opgeslagen in de variabele usbnumber
}
Als (usbnumber > 0) {//if we iets lezen
Als (usbnumber == 49) {}
servo1.write(93);
servo2.write (93), lezen we een 1, halte //if
analogWrite (debugPin, 0);
}
Als (usbnumber == 50) {}
servo1.write(120);
servo2.write(120); Als we een 2, traag lezen
analogWrite (debugPin, 85);
}
Als (usbnumber == 51) {}
servo1.write(150);
servo2.write(150); Als we een 3, medium lezen
analogWrite (debugPin, 170);
}
Als (usbnumber == 52) {}
servo1.write(179);
servo2.write(179); Als we een 4, snel lezen
analogWrite (debugPin, 255);
}
Als (usbnumber == 53) {}
servo1.write(130);
servo2.write(50); Als we een 5, recht lezen
analogWrite (debugPin, 255);
}
Als (usbnumber == 54) {}
servo1.write(50);
servo2.write(130); Als we een 6, links lezen
analogWrite (debugPin, 255);
}
}
usbnumber = 0; Reset
}