Paso 4: Código de Arduino
Este código es para el Arduino RSS alimentación proyecto, buñuelo
Fue actualizado y ampliado por Sander van Haperen, agosto de 2014. Leer las líneas de comentario para averiguar cómo funciona
int startstring = 0; reconocimiento del principio de la nueva cadena int charcount = 0; seguimiento de total de caracteres en pantalla
#include servo myservo; crear objeto servo para controlar un servo / / se puede crear un máximo de ocho objetos de servo
#include / / importación el lcd LiquidCrystal librería LiquidCrystal (12, 11, 5, 4, 3, 2);
void setup() {Serial.begin(9600); / / abre el puerto serie, establece la tarifa de datos a 9600 bps lcd.begin(16,2); / / inicializar el tamaño de la LCD 16 x 2. Cambio si se utiliza una lcd.setCursor(0,0) más grande del LCD; Establecer la posición del cursor a la esquina superior izquierda pinMode (13, salida); myservo.Attach(9); se fija el servo en el pin 9 al objeto servo}
void loop() {char incomingByte = 0; / para los datos entrantes en serie si (Serial.available() > 0) {/ / cheque de entrada de datos seriales int pos = 0; / / variable para almacenar el servo posición myservo.write(pos); / / Dile servo a la posición en la variable 'pos' digitalWrite (13, HIGH); incomingByte = Serial.read(); si ((incomingByte == ' ~') & & (startstring == 1)) {/ / hora para el cierre ' ~' para poner fin a la impresión de datos en serie startstring = 0; / / configurar la impresión en off delay(5000); / / esperar 5 segundos lcd.clear(); / / Limpie la pantalla charcount = 0; / / reset el recuento de caracteres a lcd.setCursor(0,0) 0; restablece el cursor en 0,0} si (startstring == 1) {/ Compruebe si la cadena ha comenzado a si primer ' ~' ha sido leído Si (charcount < = 30) {/ / comprobar si charcount es bajo o igual a 30 lcd.print(incomingByte); / / imprimir el byte actual en la serie charcount = charcount ++; / / incrementar la charcount en 1 sí sé que es difícil}} si (charcount == 31) {/ si la charcount es igual a 31 también conocido como la pantalla es completa delay(500); lcd.clear(); / claro el lcd.setCursor(0,0) de la pantalla; / / cursor para 0,0 LCD.Print(incomingByte); continuar la impresión de datos charcount = 1; establecer charcount en 1} si (incomingByte == ' ~') {/ / comprobar si el byte es marcador ~ para iniciar la impresión startstring = 1; / / iniciar impresión}} digitalWrite (13, bajo); int pos = 90; variable para almacenar el myservo.write(pos) de posición del servo; Dile el servo a la posición en la variable 'pos' delay(10); retardo de 10 ms para estabilidad}