Paso 5: Construir la médula espinal y escribe el código de Arduino
El diagrama de Fritzing anterior detalla las partes y las conexiones necesarias para conectar el sensor de temperatura y solenoides a la "médula espinal", el cerebro (retruécano previsto) de nuestro sistema. La batería de NiMH de 12 voltios se encuentra por debajo de la placa y SparkFun RedBoard dentro de la caja del proyecto. El sensor de temperatura no está en el protoboard como se muestra en el diagrama de Fritzing, pero se une a la mano de esqueleto como se muestra en la imagen 3. Esto permite la llama se aplica cerca de la mano para mejor simular el reflejo del dolor de temperatura.
El código se pega a continuación. No es la solución más elegante (por ejemplo, solía retardo en lugar de millis para mantenerlo simple), pero funciona:
const int highSolenoid = 7; entrada del combo de regulador/solenoide de alta presión
const int lowSolenoid = 8; entrada de combo de regulador/solenoide de baja presión
const int releaseSolenoid = 4; solenoide para liberar el aire de bíceps
const int tempPin = A0;
int sensorValue;
int tempF;
void setup() {}
pinMode (highSolenoid, salida);
pinMode (lowSolenoid, salida);
pinMode (releaseSolenoid, salida);
Serial.Begin(9600);
}
void loop()
{
sensorValue = analogRead(tempPin); Sensor de presión de lectura
int tempF = ((sensorValue * 4.887585532746823)/10);
Serial.Print(sensorValue);
Serial.Print ("temperatura");
Serial.println (tempF, DEC);
Delay(250);
Si (tempF > 85)
{
digitalWrite (lowSolenoid, bajo);
Delay (100);
digitalWrite (releaseSolenoid, HIGH); comunicado abierto solenoide para que bíceps pueden ser contratada digitalWrite (highSolenoid, HIGH); Si la temperatura supera la 85F, se abre el solenoide alta, simulación rápida y eliminación y contracción del bíceps
retrasar (5000);
digitalWrite (highSolenoid, bajo); detener la contracción del bíceps
retrasar (1000); da tiempo para el aire liberado de bíceps
digitalWrite (releaseSolenoid, bajo);
Delay (100); tiempo para el lanzamiento solenoide cerrar antes de activar la contracción de bíceps/tríceps tónica otra vez
digitalWrite (lowSolenoid, HIGH);
retrasar (8000);
}
otra cosa
{
digitalWrite (lowSolenoid, HIGH);
digitalWrite (highSolenoid, bajo);
}}