3 canales Dimmer/atenuador para Arduino u otro microcontrolador (2 / 3 paso)

Paso 2: 3 canales Dimmer/atenuador para Arduino u otro microcontrolador: Software

Esto es sólo para demostración o prueba de propósito.

Como este programa es sólo para ilustrar, el bucle de ciclos entre 0 y 127...


 /* AC Light Control Ryan McLaughlin <ryanjmclaughlin with slight modifications */ #include <TimerOne.h> // http://www.arduino.cc/playground/Code/Timer1 #define PINS 3 volatile int pinCount[PINS]; // make volatile to make available in interrupt volatile boolean zero_cross=0; // Boolean to store a "switch" to tell us if we have crossed zero int AC_pins[] = {3,4,5}; // Stup the pin numbers int AC_dim[PINS]; // Holds Dimming levels (0-128) 0 = on, 128 = 0ff int freqStep = 78; // Set the delay for the frequency of power (65 for 60Hz, 78 for 50Hz) per step (using 128 steps) // freqStep may need some adjustment depending on your power the formula // you need to us is (500000/AC_freq)/NumSteps = freqStep void setup() { for(int a=0; a < PINS; a++) { //set the pins to output pinMode(AC_pins[a],OUTPUT); pinCount[a] = 0; // keeps track of the time in the cycle AC_dim[a] = 0; // dimming level set to zero } attachInterrupt(0, zero_cross_detect, FALLING); // Attach Interrupt to Pin 2 (interrupt 0) for Zero Cross Detection Serial.begin(9600); Timer1.initialize(freqStep); // Initialize TimerOne library for the freq we need Timer1.attachInterrupt(dim_check, freqStep); // Use the TimerOne Library to attach an interrupt // to the function we use to check to see if it is // the right time to fire the triac. This function // will now run every freqStep in microseconds. } void zero_cross_detect() { // function to be fired at the zero crossing zero_cross = 1; // set flag to tell dimming function zero cross has occured } // End zero_cross_detect void dim_check() { // Function will fire the triac at the proper time if(zero_cross == 1) { // First check to make sure the zero-cross has happened else do nothing for(int a=0; a < PINS; a++) { if(pinCount[a] >= AC_dim[a]) { // Check and see if i has reached the dimming value we want digitalWrite(AC_pins[a], HIGH); // Fire the Triac delayMicroseconds(5); // Pause briefly to ensure the triac turned on digitalWrite(AC_pins[a], LOW); // Turn off the Triac gate (Triac will turn off at the next zero cross) pinCount[a] = 0; // Reset the accumulator zero_cross = 0; // Reset the zero_cross so it may be turned on again at the next zero_cross_detect } else { pinCount[a]++; // If the dimming value has not been reached, incriment the counter } } } } void loop() { // This is simply making all outputs cycle through bright-dark, out of time with each other. for(int i=0; i<127; i ++) { for(int a=0; a < PINS; a++) { int ii = i+42; //this is the bit that puts the blinking lights out of sync with one another if(ii > 127) ii -= 127; AC_dim[a] = ii; } delay(50); } } 

Artículos Relacionados

Simple módulo de EEPROM para Arduino u otro microcontrolador

Simple módulo de EEPROM para Arduino u otro microcontrolador

EEPROMs son útiles si desea almacenar algunos datos sin perderlo. Muchos microcontroladores cuentan con algunas EEPROM interna, pero como EEPROMs tienen un número finito (aunque muy grande) de las escrituras antes empiezan a ser defectuoso, mi caráct
Un más barato ESP8266 WiFi Shield para Arduino y otros micros

Un más barato ESP8266 WiFi Shield para Arduino y otros micros

Actualización: 19 de mayo de 201614 Rev de este proyecto revisa las bibliotecas y código para trabajar con ESP8266.com IDE plugin V2.2Actualización: 17 de diciembre de 210511 Rev de este proyecto limpia otras conexiones intentadas si ya está conectad
Cómo medida actual de AC usando el Sensor de efecto Hall con Arduino u otros microcontroladores comunes

Cómo medida actual de AC usando el Sensor de efecto Hall con Arduino u otros microcontroladores comunes

Un nuevo enfoque más simple consulte aquíObjetivo: Este Instructable muestra cómo hacer una caja de interfaz que, al empalmar un cable de extensión, permite a los microcontroladores comunes como Arduino a medida AC actual como una señal de voltaje DC
Control de Motor Reversible, fácil para Arduino (o cualquier microcontrolador)

Control de Motor Reversible, fácil para Arduino (o cualquier microcontrolador)

este proyecto utiliza tres componentes principales para proporcionar control de avance y retroceso de un solo motor.  Fácilmente pueden interconectar a un Arduino o cualquier otro microcontrolador.Es tan simple - usted alambre encima de "forma libre&
Controlar un Furby con Arduino (u otro microcontrolador)

Controlar un Furby con Arduino (u otro microcontrolador)

El Furby millones de dólares: Podemos reconstruirlo. Contamos con la tecnología.Continuación de la anterior Instructable donde suprimimos cerebro primitivo de Furby, ahora es tiempo de reemplazarlo con algo más grande.Este Instructable detallará cómo
Construir un tablero de conductor del LED para Arduino (y otros diputados) utilizando cuatro H-puentes

Construir un tablero de conductor del LED para Arduino (y otros diputados) utilizando cuatro H-puentes

salidas digitales del Arduino pueden bombear sobre 40 mA de corriente de cada uno.  Esto está lejos de lo suficiente para la mayoría de las aplicaciones iluminación o motor, por lo que el uso de un escudo de controlador relé impreso o motor son neces
Sensor de presión y pre-amp de Mike de sonido para Arduino

Sensor de presión y pre-amp de Mike de sonido para Arduino

he publicado una sonido presión Sensor para arduino (u otro microcontrolador) antes.Se basó en un TLC272 doble Op-amp y lo hizo muy bien.Una de las personas reacciona aunque estaba preguntando si lo había hecho ningún análisis de ondas sonoras con él
SensoDuino: Convertir su teléfono Android en un concentrador de sensores inalámbricos para Arduino

SensoDuino: Convertir su teléfono Android en un concentrador de sensores inalámbricos para Arduino

Actualizaciones23 de noviembre de 2013: SensoDuino 0.160 obtiene una cara izquierda.19 de noviembre. 2031: opinión: la increíble sinergia entre Arduino y Android.19 de noviembre de 2013: SensoDuino 0.159 está hacia fuera. Fecha teléfono Android (y, m
ESP8266 Wifi adiciónales para Arduino fácil

ESP8266 Wifi adiciónales para Arduino fácil

ActualizaciónEl proceso descrito aquí ya no se recomienda. Este instructivo ha sido reemplazado por ESP8266 WiFi Shield para Arduino y otros micros que proporciona una función de configuración de página web más universal.IntroducciónESP8266 es un chi
Simple pantalla táctil LCD para arduino

Simple pantalla táctil LCD para arduino

Esta es una guía que muestra de una manera fácil de configurar una interfaz de pantalla táctil LCD con arduino y otros microcontroladores similares.También es autopromoción desvergonzada de mi pedal de arranque... que se centra en lo que es muy fácil
CA PWM regulador para Arduino

CA PWM regulador para Arduino

ADVERTENCIA: este proyecto utiliza voltajes mortales, así como un gran condensador para almacenar estos voltajes mortales. Incluso después de desconectar el circuito de la red, el condensador todavía le puede dar una sacudida para recordar!!Hace más
Guían de experimentadores para Arduino ya que se realiza en OIT

Guían de experimentadores para Arduino ya que se realiza en OIT

recursosAdafruit ARDX - v1.3 juego de experimentación para ArduinoGuía de los experimentadores para Arduino (PDF)Diseños de tablero de pan (PDF)Tutorial de Arduino Bundle (instructivo)Este Arduino Tutorial va a ser muy similar a la Arduino Tutorial p
ArduDroid: Un Simple controlador de Android basado en el modo Bluetooth 2 para Arduino RGB led tira

ArduDroid: Un Simple controlador de Android basado en el modo Bluetooth 2 para Arduino RGB led tira

INTRODUCCIÓNCONSEGUIR en el app de google PLAY "ardudroid"ARDUDROID (antes Andruino) es una aplicación Android sencilla para ayudarle a controlar los pines de tu Arduino Uno (o clon) de tu teléfono Android sin cables. Es una aplicación Android y
Primeros pasos con GearBest Starter Kit para Arduino

Primeros pasos con GearBest Starter Kit para Arduino

Si eres nuevo en el "mundo de Arduino" este tutorial le ayudará a dar tus primeros pasos con electrónica y placas Arduino.Vamos a utilizar el "GearBest Starter Kit para Arduino" para esto! ¿Por qué? Porque es un kit de bajo costo - sól