3-kanaals Dimmer/fader voor Arduino of andere microcontroller (2 / 3 stap)

Stap 2: 3-kanaals Dimmer/fader voor Arduino of andere microcontroller: Software

Dit is alleen voor demonstratie- of testende doeleinden.

Als dit programma is gewoon te illustreren, wordt de lus tussen 0 en 127 cycli...


 /* 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); } } 

Gerelateerde Artikelen

Eenvoudige EEPROM Module voor Arduino of andere microcontroller

Eenvoudige EEPROM Module voor Arduino of andere microcontroller

EEPROMs van pas komen als u sommige gegevens opslaan wilt zonder verliezen. Vele microcontrollers komen met enkele interne EEPROM, maar zoals EEPROMs een eindige (hoewel zeer groot) aantal schrijft voordat hebben ze beginnen steeds defect, mijn anaal
Een goedkopere ESP8266 WiFi Shield voor Arduino en andere micros

Een goedkopere ESP8266 WiFi Shield voor Arduino en andere micros

Update: 19 mei 2016Rev 14 van dit project herziet bibliotheken en code om te werken met de plug-in V2.2 ESP8266.com IDEUpdate: 17 December 2105Rev 11 van dit project schoont andere pogingen tot verbinding als het al is aangesloten. Maakt ook gebruik
Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

dit project maakt gebruik van slechts drie hoofdcomponenten voor voorwaartse en omgekeerde bepalen voor een interne motor.  U kunt het gemakkelijk interface naar een Arduino of elke andere microcontroller.Het is zo eenvoudig - u kunt het draad van "f
Een LED Driver Board voor Arduino (en andere MPs) met behulp van Quad H-bruggen bouwen

Een LED Driver Board voor Arduino (en andere MPs) met behulp van Quad H-bruggen bouwen

de Arduino digitale uitgangen kunnen pompen over 40mA van de huidige elke.  Dit is nergens in de buurt genoeg voor de meeste toepassingen voor verlichting of motor, dus het gebruik van een relais boord of motor stuurprogramma schild nodig zijn.  Dit
Controle van een Furby met Arduino (of andere microcontroller)

Controle van een Furby met Arduino (of andere microcontroller)

De Million Dollar Furby: We kunnen hem herstellen. We hebben de technologie.Vervolg van de vorige Instructable waar we weggesneden Furby van primitieve hersenen, is het nu tijd om het te vervangen met iets groter.Dit Instructable zal detailleren hoe
SensoDuino: Zet uw Androïde telefoon in een draadloze sensoren Hub voor Arduino

SensoDuino: Zet uw Androïde telefoon in een draadloze sensoren Hub voor Arduino

UPDATES23 november 2013: SensoDuino 0.160 krijgt een links.19 nov. 2031: advies: de fantastische synergie tussen Arduino & Android.19 november 2013: SensoDuino 0.159 is uit. Android telefoon datum (y, m, d) en tijd (h, m, s) worden ondersteund als se
Druksensor en Mike voorversterker klinken voor Arduino

Druksensor en Mike voorversterker klinken voor Arduino

ik heb een Sound pressure Sensor voor de arduino (of andere microcontroller) gepubliceerd vóór.Het was gebaseerd op een TLC272 dubbele opamp en deed het heel goed.Een van de mensen die reageren al vroeg als ik een analyse van de soundwave mee had ged
ESP8266 Wifi toevoegen op voor Arduino Made Simple

ESP8266 Wifi toevoegen op voor Arduino Made Simple

UpdateHet hier beschreven proces wordt niet langer aangeraden. Dit instructable is achterhaald door ESP8266 WiFi Shield voor Arduino en andere micros waarmee een meer universele webpagina configuratie functie.IntroductieESP8266 is een low-cost wifi i
AC PWM dimmer voor Arduino

AC PWM dimmer voor Arduino

Waarschuwing: dit project gebruikt voor het opslaan van deze dodelijke spanningen dodelijke spanningen, evenals een omvangrijk condensator. Zelfs nadat u het circuit van de grid loskoppelen, kan de condensator nog geven u een schok om te onthouden!Ru
Een beginnersgids voor Arduino

Een beginnersgids voor Arduino

Na enkele jaren van experimenteren met Arduino, besloten heb ik dat het tijd is om te delen van de kennis die ik heb verworven. Dus ik hier het gaat, een gids voor Arduino, met de blote basisprincipes voor beginners en sommige meer geavanceerde uitle
Aan de slag met GearBest Starter Kit voor Arduino

Aan de slag met GearBest Starter Kit voor Arduino

Als u nieuw bij de "Arduino World bent" zal deze tutorial helpen u om uw eerste stappen met elektronica en Arduino boards Arduino boards.De "GearBest Starter Kit voor Arduino" zullen we gebruiken voor dit! Waarom? Omdat is een low-cost
ECG shield voor Arduino

ECG shield voor Arduino

Onlangs maakte ik shield voor arduino die ECG, ademhaling, uiteindelijk na enkele veranderingen in PCB en code, EEG en EMG kan meten. Groot voordeel van deze shield is de mogelijkheid om het gemakkelijk thuis te maken. Het schild is uitgerust met dis
Internet grafische Interface voor Arduino

Internet grafische Interface voor Arduino

Deze App nota wordt beschreven hoe implementeren van een web temperatuur dashboard voor Arduino Ethernet. Het is bedoeld om u te tonen hoe het geheugen-kaart concept werkt in de praktijk en de manier waarop het u om uw projecten Arduino met een paar
Onderzoekers gids voor Arduino als uitgevoerd op OIT

Onderzoekers gids voor Arduino als uitgevoerd op OIT

middelenAdafruit ARDX - v1.3 experimenten Kit voor ArduinoOnderzoekers gids voor Arduino (PDF)Brood bord lay-outs (PDF)Arduino tutorial Arduino Tutorial bundel (Instructable)Deze Arduino Tutorial is gonna be zeer vergelijkbaar met de Arduino Tutorial