Mes: febrero 2014
Arduino: Apertura de válvula programada
Enunciado:
Hay que realizar un ciclo de purga cada x tiempo, y cada purga durará 200 ms. El tiempo entre purga y purga viene determinado por la operación 2300/intensidad=seg. Siendo la Intensidad la que voy a leer del sensor de intensidad. Es decir, si estando en varios estado de funcionamiento del sistema, ejecuto la operación (2300/i) y ese valor que me da, es el tiempo que tengo que esperar para purgar, en el momento que pase, pongo en alto la válvula de purga y purgo durante 200 ms (los 200 ms siempre es igual) cuando termino de purgar (200ms) vuelvo a realizar la operación y vuelvo a esperar el tiempo que salga del resultado de la operación y así sucesivamente. También tengo que tener en cuenta que la operación se realice una sola vez tras realizar la purga para evitar perdidas de datos, o que se pase todo el tiempo realizando operaciones y finalmente no purgue. Fuente: fc
Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#define tPURGADO 2000 #define pVALVULA 13 unsigned long tEsperaPurga = 10000; unsigned long tUltPurgado = 0; unsigned long tAhora; boolean purgando = false; unsigned long tInicioPurgado = 0; // Permite simular el sensor introduciendo a mano // los numeros desde la consola Serial del IDE void leerValorSensorPurgado() { if( Serial.available() ) { tEsperaPurga = Serial.parseInt(); while( Serial.available() && Serial.read() != -1 ); } } void funcionPurgando() { tAhora = millis(); if( purgando ) { if( tAhora-tInicioPurgado > tPURGADO ) { digitalWrite( pVALVULA, LOW ); tUltPurgado = tAhora; purgando = false; Serial.print("FIN ("); Serial.print(tAhora/1000); Serial.println(")"); } else { digitalWrite( pVALVULA, HIGH ); } } else if( tAhora-tUltPurgado > tEsperaPurga ) { tInicioPurgado = tAhora; purgando = true; leerValorSensorPurgado(); Serial.print("INICIO ("); Serial.print(tAhora/1000); Serial.println(")"); } } void setup() { pinMode(pVALVULA, OUTPUT); // Led del arduino que se encendera durante el purgado. Serial.begin(9600); while(!Serial); delay(2000); Serial.println("INICIO PROGRAMA\r\n"); } void loop() { funcionPurgando(); // El resto de tareas del programa. } |
Resultado:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
INICIO PROGRAMA INICIO (10) FIN (12) INICIO (22) FIN (24) INICIO (34) FIN (36) INICIO (46) FIN (48) INICIO (58) FIN (60) INICIO (70) FIN (72) |
Forzar bandeja de salida Postfix
Fuerza cola de correo:
1 |
postqueue -f |
Lista los correos:
1 |
postqueue -p |
Lista los correos en un fichero:
1 |
postqueue -p > fichero.txt |
Cuenta los correos de la cola:
1 |
postqueue -p | tail -n 1 | cut -d' ' -f5 |
Elimina todos los correos de la cola de correo:
1 |
postsuper -d ALL |
Y otras cosas:
http://rm-rf.es/comandos-basicos-en-postfix-para-manejar-la-cola-de-correo
Pantalla LCD por comunicación I2C para Arduino
Por lo general las pantallas LCD para Arduino suelen necesitar bastantes pines digitales para funcionar, de 6 a 13 según la pantalla, y eso hace que nuestro Arduino se quede sin pines para conectar otras cosas.
Pero eso tiene fácil solución, simplemente hace falta usar un modulo que convierta la conexión en paralelo de la pantalla a conexión en serie mediante alguno de los protocolos de comunicación que soporta Arduino.
Leer másArduino – esquemas de las placas y sus entradas y salidas
Por internet hay mucha información útil sobre las placas Arduino y de toda ella sin duda esta se lleva la palma. Se trata de esquemas de cada una de las placas con todas las funcionalidades que tiene cada pin y otra información útil.
Están realizadas por pighixxx y en su página web están disponibles los ficheros originales y editables. Y el Arduino Mega por Graynomad
Leer másMódulos de reloj RTC Dallas DS1307 y DS3231
Al igual que en la anterior estación, uno de los módulos interesantes que puede tener es sin duda un reloj ya que nos permite saber en que momento se produjo el cambio de los demás sensores, es decir, en que momento la temperatura aumento, o hubo lluvia, etc.
Leer más