Incubadora de bajo costo y precisa para la biología de DIY (4 / 8 paso)

Paso 4: El arduino código

En el paso siguiente discutimos cómo controlar este circuito con el código de Arduino. Simplemente descargar y ejecutar nuestro código. El resto de este paso va en los detalles más escabrosos de cómo funciona el código. Tenga en cuenta que algunas partes de nuestro código se basan en la fase de AC de Arduino controlar tutorial hemos reutilizado alguna parte de ese código como es.

La placa Arduino UNO contiene un ATmega328P microprocesador de 16MHz. Para activar el circuito de control fase AC en exacto el tiempo de intervalos utilizamos las funciones de interrupción del temporizador de hardware del ATmega328. Así que, si no está familiarizado con conceptos como temporizadores, desbordamiento del registro y escala, que este artículo explica mejor.

Antes de entrar en codificación que tenemos que hacer algunos cálculos básicos. Es la señal de AC 60 Hz. (no se preocupe si usted tiene 50Hz en su país, usted puede volver a calcularlo fácilmente) es decir, la señal de AC cruza cero, alcanza el pico de tensión positiva, cruces de cero otra vez, alcanza el pico de tensión negativo y vuelve a cero 60 veces cada segundo. El período (longitud de tiempo que esto lleva) es 1/60 o 0,01667 segundos (16,67 milisegundos). Así, un ciclo medio o el tiempo entre dos pulsos de cruce por cero se produce en 8,33 milisegundos.

De aquí en adelante, será determinar intervalos de tiempo en el código de cuenta de reloj, no por segundos. El reloj de Arduino funciona a 16 MHz, que es 16.000.000 de ciclos por segundo: un ciclo de reloj toma 0,0625 microsegundos. Solo que la mitad del ciclo de la señal de AC de 60 Hz contiene 133.333 ciclos de reloj. El 16-bit timer (timer1) de Arduino Uno puede contar solamente a 65535. Así que tenemos configurar con un prescaler. En este código hemos utilizado un prescaler de 256. Con el prescaler de 256, la mitad de un ciclo significa aproximadamente 520 incrementos del timer. Por razones prácticas (ligeros cambios en la fuente de frecuencia y triac retrasos operacionales) se consideraron como 450. Esto asegura que el conductor del triac tiene tiempo de apagar antes el siguiente medio ciclo. Así controla el tiempo de espera antes de conectar el triac dentro de la gama 1-450 dentro de cada medio ciclo para controlar la potencia de salida. Utilizamos comparador partido interrupciones para esto. Utilizamos interrupciones de desbordamiento del temporizador para controlar la señal al gate del triac y el ancho de pulso a 4 cuentas de temporizador. Aquí, cuando el pulso es enviado a la puerta del triac, enciende la fuente de CA y permanecerá ON incluso después de retirar el pulso hasta la próxima vez que la onda de CA llegue a cero. (Si no está familiarizado con el operación es un buen artículo de Triac). Por esta razón no necesita preocuparse de apagar el triac.

Siguiente fragmento de código muestra la fase AC control de lógica.

#define detectar 2 / /detectar cero cruz

#define puerta 9 / /puerta del triac

#define pulso 4 / /gatillo ancho de pulso (cuentas)

configurar Timer1(16-bit)

OCR1A = 100; inicializar el comparador

TIMSK1 = 0 X 03; permitirá comparador A y desbordamiento de interrupciones

TCCR1A = 0 X 00; control temporizador registra sistema de

TCCR1B = 0 X 00; funcionamiento normal, temporizador desactivado

configuración cero interrupción del cruce

attachInterrupt (0, zeroCrossingInterrupt, RISING);

cero cruz detectado

void zeroCrossingInterrupt() {}

TCCR1B = 0 X 04; comenzar el cronómetro con división por 256 de entrada

TCNT1 = 0; resetear contador de tiempo - cuenta desde cero - cuentas hasta que coincida con el valor de comparación

}

partido de comparador - alcanzada el retraso esperado

{ISR(TIMER1_COMPA_vect)}

digitalWrite(GATE,HIGH); ajuste compuerta triac de alta - encienda el suministro de

TCNT1 = 65536 PULSOS; anchura de pulso de gatillo

}

desbordamiento del Timer1 - pulso alcanza su anchura

{ISR(TIMER1_OVF_vect)}

digitalWrite(GATE,LOW); apague el gate del triac

TCCR1B = 0 X 00; desactivar el temporizador para evitar desencadenantes no deseados

}

Control de temperatura

Ahora hemos terminado con la parte más delicada de nuestro código. El siguiente es para el control de potencia (o el tiempo de retardo) según el valor actual de la temperatura y la temperatura deseada. Para leer el valor de temperatura se utilizó la biblioteca Adafruit_MAX31855. Para implementar el mecanismo de control se utilizó la lógica de control PID. No te preocupes si suena un poco complejo. Por suerte tenemos una librería de Arduino para. El siguiente fragmento de código muestra el código para eso.

#define 3

#define CS 4

#define CLK 5

Adafruit_MAX31855 termopar (CLK, CS, DO);

doble valor de ajuste de entrada, salida; Definir Variables a conectarse

doble Kp = 2, Ki = 6, Kd = 1; Especificar los enlaces y los parámetros de ajuste iniciales

PID myPID (entrada y salida & setPoint, Kp, Ki, Kd, directa);

myPID.SetMode(AUTOMATIC);

myPID.SetOutputLimits (0, 449); establecer el rango

en el método de lazo

doble c = thermocouple.readCelsius();

Si (isnan(c)) {}

i = 450; Ir a energía mínima si algo salió mal

}

Else {}

Entrada = c; myPID.Compute();

i = salida de 450; reducir la demora, mayor el poder

}

OCR1A = i; comparador de valor i

Delay(400); / / esperar siguiente temperatura leída


Interfaz de usuario

Para la interfaz de usuario del programa utilizamos olimex biblioteca de protector de pantalla lcd junto con biblioteca de alambre de Arduino. Usted puede descargar la biblioteca de olimex desde sitio web Olimex.

Artículos Relacionados

Controlador de nivel de líquido precisa con sensor de bajo costo y remoto para configuración de TV

Controlador de nivel de líquido precisa con sensor de bajo costo y remoto para configuración de TV

Este es el mi primer proyecto personal de Arduino. Incluso a través de planea automatizar nuestros más nivel de agua del tanque no quiero invertir más dinero en los instrumentos. Tengo algunos placa Arduino y tableros de relés de mis amigos. Tan su u
Altavoces portátiles de bajo costo y 'amp' para el iPod (megáfono no electrónicos)

Altavoces portátiles de bajo costo y 'amp' para el iPod (megáfono no electrónicos)

inspirados en estos dos instructables, me levanto mi culo para hacer mi primer instructable por mí mismo.Auriculares de Ghetto "Amp"Amplificador de altavoz fácil rápidoCompruébelo usted mismo lo bien que funcione en el video.Hace a este suena fa
1 bajo costo cable lcd para 8 reguladores micro pin [romanblack sistema de shift1]

1 bajo costo cable lcd para 8 reguladores micro pin [romanblack sistema de shift1]

Shift1 sistema es una manera barata y simple para obtener un montón de clavijas de salida digital y sólo necesita 1 PIC pin para conducirlo.Paso 1: Cómo funciona - el sistema simple Normalmente, se puede establecer registro de serie-en paralelo-hacia
Bajo costo Hobby Servo XY mesa

Bajo costo Hobby Servo XY mesa

para este proyecto, hemos querido construir una más bajo costo, menor precisión XY la tabla para una instalación en TeleToyland. El objetivo es permitir a los usuarios de la web dibujar formas en una caja de arena, así que queríamos una mesa XY simpl
Elegante y bajo costo 55 galones tambor jardineras

Elegante y bajo costo 55 galones tambor jardineras

quería construir algunos contenedores simple, bajo costos y atractivo para unos frutales que estaban listos para ser replantados en el patio de mi casa.  Segunda mano con 55 galones barriles de plástico seguro alimentos y algunos restos de madera que
Led de R2D2 cómo batalla dañado R2 y añadir bajo costo audio n

Led de R2D2 cómo batalla dañado R2 y añadir bajo costo audio n

bienvenida mi Batalla de R2D2 dañado por el retorno del jedi...oye que voy a publicar información sobre erosión su modelo r2d2 y la información sobre cómo obtener un bajo costosonido r2d2 y leds de bajo costo.Para un paso a paso sobre cómo crear un R
Manera de bajo costo para reemplazar un coche que se ajuste.

Manera de bajo costo para reemplazar un coche que se ajuste.

Hace años perdí los adornos interiores de mi coche. Ahora he decidido hacer una cubierta para ocultar el cableado que he puesto que habría ocultado los adornos antiguos.Sigue leyendo para mi solución diy de muy bajo costo.Paso 1: Tela y pegamento. Pe
Clip de bajo costo prueba de IC para PIC ICSP

Clip de bajo costo prueba de IC para PIC ICSP

Hice el Clip de prueba de IC de bajo costo para microcontroladores ICSP de PIC.http://neo-Sahara.com/wp/ic_test_clipPaso 1: Utilice cinta de cobre y clavija del paño.Paso 2: Poner la cinta de cobre en la clavija del paño y corte las cintas como echad
Construir un motor Stirling de bajo costo para la generación de energía

Construir un motor Stirling de bajo costo para la generación de energía

Antes voy a empezar mi Instructables quiere hacer hincapié en que este no es un proyecto acabado y sigue en marcha a partir del momento estoy creando este Instructables. Ya pasé más de 3 meses haciendo esto aunque estoy cerca de realización todavía n
Bajo costo espacio menos terminales de conexión para ICSP

Bajo costo espacio menos terminales de conexión para ICSP

Hice de bajo costo y espacio menos terminales PCB para conexiones ICSP.http://neo-Sahara.com/wp/smd_icspPaso 1:Wire(0.55mm) de viento de cobre alrededor de bar(1.5mm) en bobinas.Paso 2:Corte cada paces.Paso 3:Colocar huellas de PCB como cojines de 2.
Estante de la bici de madera para 5 bicicletas, rápido y bajo costo construir

Estante de la bici de madera para 5 bicicletas, rápido y bajo costo construir

Estaba buscando una solución para almacenar las bicicletas que se acumulan en nuestroPlaza de garaje. Estaban poniendo por todas partes y debido a mi costumbre de "recogida de basura", teníamos un montón de ellos.Quería algo que podría:Almacenar
Configuración del prototipo para un USB alimentado bajo costo; radiación continua en tiempo real sistema de vigilancia para el Hospital de patología quirúrgica, hematología, biológico gestión de residuos y centros de investigación

Configuración del prototipo para un USB alimentado bajo costo; radiación continua en tiempo real sistema de vigilancia para el Hospital de patología quirúrgica, hematología, biológico gestión de residuos y centros de investigación

configuración del prototipo a un costo de baja potencia USB; tiempo real radiación continua sistema de control biológico de la patología quirúrgica del Hospital, hematología, gestión de residuos y centros de investigaciónTítulo de rodaje: Alimentado
Manejable Segway clon - bajo costo y fácil construcción

Manejable Segway clon - bajo costo y fácil construcción

Este Instructable le mostrará cómo construir un clon de Segway capaz de paseo. Aquí están sus características:Fácil montaje sin soldaduras, no complicada dirección acoplamiento y soldadura mínima.Utiliza un fácilmente disponible $3 digital Junta IMU
Bajo costo Neuroprosthetic Modular

Bajo costo Neuroprosthetic Modular

Mi nombre es JD y soy estudiante de segundo año en la escuela secundaria. Han estado trabajando en este proyecto desde hace algún tiempo y todavía activamente estoy mejorando, pero quería empezar a documentar mi trabajo en línea para que otros pueden