Paso 4: Software
En lugar de explicar todo el código, tenemos la intención de centrarse en el sw clave que controla las unidades de hardware principal utilizadas en este proyecto.
1. control de la temperatura
A continuación es una simple función del proyecto que lee la temperatura del sensor y la convierte en grados Celsius. El intel MRAA biblioteca se utiliza para interactuar con el io analógicas.
flotador ReadTemperature(mraa::Aio *t)
{
resistencia del flotador = 0.0f;
Float temperatura = 0.0f;
int a = t -> read();
const int B = 3975;
Resistance=(float)(1023-a) * 10000/a; obtener la resistencia del sensor;
temperatura = 1 / (log (resistencia/10000) /B+1/298.15)-273.15;//convert a la temperatura a través de la hoja de datos;
Sleep(1);
volver la temperatura;
}
2. servo control
A continuación es un fragmento de código en el cual usamos el módulo Intel UPM para controlar el servo.
g_servo = new upm::ES08A(3);
ángulo de int = 20;
int cnt = 0;
Este código un movimiento servo lento y constante, mientras se alimentan los peces.
Los ángulos dependen de la unidad y la orientación del alimentador así cambiarlos cuando sea necesario.
Si (g_servo)
{
mientras (ángulo < 180)
{
ángulo = ángulo == 0? ángulo = 90:0;
g_servo -> setAngle(angle);
ángulo += 170;
Sleep(1);
}
CNT ++;
}
3. GPIO init para relé
relGpio = new mraa::Gpio(3,true,false);
Si (! relGpio)
{
printf ("no se pudo crear pin\n digital");
volver -1;
}
respuesta = relGpio -> dir(mraa::DIR_OUT);
Si (respuesta! = MRAA_SUCCESS)
mraa_result_print((mraa_result_t) MRAA_SUCCESS);
El real relé interruptor Encender/Apagar se hace el siguiente código:
relGpio -> write(relay_switch); 0 = relay_switch_on, 1 = relay_switch_off