Nachtelijke emissies: Mijn Arduino Powered Internet ingeschakeld droom Generator (6 / 7 stap)

Stap 6: Wij onderbreken dit programma!


Een van de lastigste dingen die ik leren moest voor dit project alles over interrupts was.  Een interrupt is een proces dat kan worden uitgevoerd in parallel op de achtergrond terwijl uw schets voor andere dingen zorgt.  Kon ik niet krijgen de knop voor het activeren van de printer en ik besloot dat het was omdat met de Maxbotix sensor stembureaus hele tijd, en de muziek en de verlichting in te schakelen er te veel gebeurt was.  Een druk op de knop is een perfecte ding voor een interrupt, vooral omdat het niet dat vaak gebeuren.  Ik heb gehoord dat het beschreven op deze manier.  Uw deurbel is gebroken en je verwacht een belangrijke verzending voor rechte hoek headers voor uw definitieve project dat zal volgende week.  Je bent verwoed uw instructable schrijven voor Studio maken en u wilt niet te stoppen met elke minuut of twee om te zien als de delivery guy heeft afgezet aan het pakket.  Dus huren u een konijn van de taak tot aan je deur staan en waarschuwt u wanneer het pakket aankomt.  Dat is als een interrupt!  Uw code houdt inpluggen weg terwijl de interrupt parallel werkt zonder uw code onderbreken totdat het heeft een aantal belangrijke info.

Ze lijken ingewikkeld en het meer wordt gemaakt dus door het feit dat er een heleboel info over deze Arduino uitgevoerd onderbreekt die alleen lijkt te functioneren op pin 1 en 2.  Ik leerde over een dieper niveau interrupt een AVR-Interrupt die ongeacht het pin-nummer werken kan genoemd.  Ze lijkt soort van ingewikkeld omdat ze geschreven in een lage code die net ziet als gobbldygook eruit maar ik vond hier de code in de Adafruit Wave Shield voorbeelden.

Je begint door "met inbegrip van" AVR aan het begin van uw schets

#include < avr/pgmspace.h > //so die wij kunnen programmeren met behulp van AVR code

Vervolgens activeert u de interrupt uitzien...

initialiseren AVR interrupt
TCCR2A = 0;
TCCR2B = 1 << CS22 | 1 << CS21 | 1 << CS20;

Timer2 Overflow Interrupt Enable
TIMSK2 | = 1 << TOIE2;

(Ik weet het, rechts?)

Dan identificeert u een functie geactiveerd door de interrupt

de interrupt die parallel met de lus functie en calle de check_button()-functie loopt

Signal(TIMER2_OVF_vect) {}
check_button();
}

Vervolgens u het programmeren van de functie

}

ongeldig check_button() {}

buttonState = digitalRead(buttonPin);

Als (buttonState == HIGH & & previousButtonState == LOW) {}
buttonPressed = 1; deze globale variabele kunt zien van de lus functie dat de knop is ingedrukt
previousButtonState = hoog; de jonge knop staat ingesteld op de huidige status van de knop
}

if(buttonState == low) {}
buttonPressed = 0; vertellen de lus functie neer dat de knop niet is ingedrukt
previousButtonState = laag; de vorige buttonState ingesteld op de status van de huidige knop
}

}

Nu wanneer de interrupt ziet dat de knop is ingedrukt het verandert de muziek en verlichting op!

Gerelateerde Artikelen

Arduino-Powered vier Letter woord Generator

Arduino-Powered vier Letter woord Generator

bouwen van een Arduino-aangedreven versie van de "vier Letter woord Generator" (FLW). Deze versie genereert "woorden" op de vlieg - het maakt geen gebruik van een lijst. De "originele" versie uit de jaren 1970 gebruikt B7971
Solar-georiënteerd, Arduino-Powered Klok

Solar-georiënteerd, Arduino-Powered Klok

dit is een klok die zijn ontworpen voor het houden van nauwkeurige tijd (onafhankelijk van atomaire of GPS), weergeven van lokale zonsopgang, zonsondergang en zonne-energie middag, en ook zelf voor de tijd van daglichtbesparingen aanpassen.Ik wilde d
Arduino Powered Home

Arduino Powered Home

Ik heb een paar updates in dit instructable sinds Aug 2014 ***Heb ik besloten om deze informatie te delen, zodat het anderen die hebben moeite helpen misschien om soortgelijke dingen met hun Arduino doen. Ik heb pas onlangs gekregen die betrokken zij
Arduino via internet toegang hebben tot

Arduino via internet toegang hebben tot

Dit instructable is gewoon een poging om je arduino verbinden met internet. Er zijn zoveel vergelijkbaar instructables die je vertellen hoe hetzelfde te doen, dit is iets meer gedetailleerde versie, die ik dacht zou kunnen helpen beginners zoals ik.
Analoge VU-meter en de klok (Arduino Powered)

Analoge VU-meter en de klok (Arduino Powered)

dit project brengt terug de oude tijd Analoge VU-Meter, met de toegevoegde functionaliteit van een nette uitziende klok! Wanneer u zwenking vandoor uw muziek swing de meter automatisch in op de klok. Achter is dit alles de populaire en makkelijk te g
Arduino Powered 3-zone thermostaat

Arduino Powered 3-zone thermostaat

Was ik te kijken naar al die swoopy-zoomy internet aangesloten en regelbare thermostaten. "Zelf," Ik zei tegen mezelf, "moeten we een van die." Hij lijkt niet zo enthousiast over dat - ik bedoel, wat weten we over de hardware, firmware
3 channel arduino Powered Christmas verlichtingssturing!

3 channel arduino Powered Christmas verlichtingssturing!

Voor kerst dit jaar, die ik wilde maken van een echt cool project maar niet goed weet wat te maken. Zoals mij watertje getting de Christmas lights out om te versieren, was er een oude kapotte Kerstmis licht timer. Ik nam het uit elkaar en keek rond o
Arduino powered bluetooth externe relay switch

Arduino powered bluetooth externe relay switch

HiIk wilde het bouwen van een eenvoudige 2-kanaals bluetooth remote switch box.voor verstrekken mij voor het op afstand schakelen van verschillende apparaten in- en uitschakelen van mijn android telefoon.Het apparaat moest worden kleine makkelijk te
Helpen met mijn arduino project. (2, 7 segment met piëzo-zoemer en estafette)

Helpen met mijn arduino project. (2, 7 segment met piëzo-zoemer en estafette)

Hallo, ik wat hulp nodig met mijn arduino project.Ik heb 2, 7 segment wordt weergegeven welke aftellen van 20 naar nul en vervolgens het piëzo-zoemer beebs voor een tijdje.Mijn vraag is:Ik wil een relais ingeschakeld voor 20 tweede tegelijkertijd met
Mijn Arduino In Circuit Programmer

Mijn Arduino In Circuit Programmer

/ * stijldefinities * / tabel. MsoNormalTable {mso-stijl-naam: "Tabel normaal"; mso-tstyle-rowband-grootte: 0; mso-tstyle-colband-grootte: 0; mso-stijl-noshow:yes; mso-stijl-ouder: "";" mso-padding-alt: 0 in 5.4pt 0 in 5.4pt; mso-
Pooien mijn Arduino

Pooien mijn Arduino

Ja schat! Soms economie is niet hoe ik wil vliegen. Dan moet ik doen een beetje aanpassen zodat kan ik het krijgen van dingen recht door mij.Stap 1: In geval u het gemistIk heb geüpload gisteren een artikel over sommige voeten zetten deze Arduino boa
Arduino-Powered binaire Thermometer

Arduino-Powered binaire Thermometer

ik heb onlangs verworven een Arduino Uno en was op zoek naar een cool "getting started"-project. Heb ik besloten om een thermometer, als de kit heb ik alle nodige onderdelen (thermistor, draden, weerstanden, LEDs). Door middel van een paar itera
Mijn Arduino Line Na Robot!!! -Met Pololu kW-6A IR reflectie Sensor Array

Mijn Arduino Line Na Robot!!! -Met Pololu kW-6A IR reflectie Sensor Array

ik gebruikte een Arduino Duemillanove met de 328 ATMega. Voortstuwing wordt geleverd door de twee Parallax Futaba continue rotatie servo's. Mijn sensor is de Pololu kW-6A IR reflectie Sensor-Array, en het is allemaal uitgeschakeld 4 oplaadbare NiMH D
Arduino Powered RGB LED wodka plank

Arduino Powered RGB LED wodka plank

dit instructable krijgen u zal maken van uw eigen arduino aangedreven rood groen en blauwe LED project. Het hoeft zelfs niet te worden een plank! Flessen wodka toevallig mooi dus dat is wat ik wilde doen oplichten.In dit project gebruiken we elke pin