Elektronische Kerze Flackerlicht mit PIC-Mikrocontroller
|
|
- Franziska Böhmer
- vor 7 Jahren
- Abrufe
Transkript
1 Elektronische Kerze Flackerlicht mit PIC-Mikrocontroller Stefan Buchgeher 7. Juli Großambergstraße 106/3, A-4040 Linz (Österreich) ++43/699/
2 INHALTSVERZEICHNIS 1 Inhaltsverzeichnis 1 Einleitung 1 2 Realisierungsidee 1 3 Demonstrationsbeispiel Schaltung (Hardware) Software Anmerkungen zur Software Demonstrationsbeispiel Demonstrationsbeispiel Demonstrationsbeispiel Einleitung Das besondere an einer elektronischen Kerze ist das Nachbilden des zufälligen Flackerns, so dass für den Betrachter der Eindruck entsteht, dass es sich hier um eine zufällige Helligkeitsänderung handelt. Das Erzeugen von Zufall ist aber eine sehr schwierige Aufgabe, da dies im Normalfall eher nicht gewollt wird. Die Elektronik, oder ein Gerät ganz allgemein, soll normalerweise nicht etwas zufälliges machen, sondern nach ganz bestimmten, definierten Vorgaben reagieren. Das Erzeugen einer zufälligen Zahl ist aber genau das Gegenteil davon. Diese Arbeit zeigt wie man mit einem Mikrocontroller (hier mit einem kleinen 8pinigen PIC-Mikrocontroller) eine Kerze nach bilden (simulieren) kann. Der Mikrocontroller benötigt keine besonderen Hardwaremodule. Die Idee der hier beschriebene Methode kann daher mit jedem Mikrocontroller (auch von anderen Herstellern) realisiert werden. 2 Realisierungsidee Für das Nachbilden einer Kerze wird hier eine Tabelle verwendet, wobei die Tabellenwerte ein Maß für die Helligkeit der Leuchtdioden sind. Die Leuchtdiode leuchtet mal hell mal etwas dunkler, wieder eine Spur heller usw., so wie es die Werte in der Tabelle vorgeben. Wenn diese Helligkeitsänderungen sehr schnell sind, nimmt das menschliche Auge dies als Flackern war, so wie das Flackern einer Kerze. Da eine Tabelle aber nur eine begrenzte Anzahl an Werten beinhaltet, wiederholt sich dieses Flackern immer wieder. Je länger die Tabelle ist, desto unbedeutender wird dieser kleine Nachteil. Hier, bei dieser Arbeit, wiederholt sich das Flackern erst nach ca. 20 Sekunden, was genau genommen schon sehr lange ist.
3 2 REALISIERUNGSIDEE 2 Die Abbildung 1 zeigt die Tabellenwerte in grafischer Form für eine mögliche Flackersequenz, wobei null gleich bedeutend mit dunkel ist (die Leuchtdiode oder eine Glühlampe leuchtet nicht) und beim Maximalwert von 31 leuchten die Leuchtdiode (oder eine Glühlampe) mit voller Helligkeit. Bei den Werten zwischen 0 und 31 leuchtet diese dementsprechend weniger hell. Abbildung 1: Flackerzyklus (Tabelle) Die zur Abbildung 1 dazugehörigen Tabellenwerte sind in Listing 1 so wie sie auch im Quellcode für den Mikrocontroller verwendet werden angegeben. Bei diesem Listing handelt es sich um einen Auszug aus dem gesamten Quellcode, der im Abschnitt 3.2 (ab Seite 6) vollständig abgedruckt ist. Die Zeilennummern in Listing 1 entsprechen denen vom Gesamtquelltext (Listing) von Abschnitt // Tabelle fuer das Flackerlicht 69 const char TabFlackerlicht [256] = 70 { 71 17,20,22,22,25,25,27,31,30,23,19,18,19,17,15, 72 15,10,8,4,4,10,20,23,25,25,25,23,21,20,24,17, 73 19,25,29,31,27,22,29,29,29,31,31,27,21,16,10,5, 74 5,6,7,8,10,10,15,15,15,18,16,15,19,19,21,23, 75 23,22,23,21,23,21,19,17,17,15,15,14,15,15,15,17, 76 17,23,23,23,23,21,21,23,23,23,17,17,16,18,18,17, 77 13,17,15,21,21,25,25,28,20,20,17,16,14,10,8,5, 78 8,10,7,7,5,4,8,4,8,10,11,15,18,22,22,22, 79 28,28,31,31,28,25,29,31,27,22,29,29,29,31,31,27, 80 21,16,10,5,5,6,7,8,10,10,10,12,15,6,6,4,0, 81 0,0,5,10,10,16,25,25,28,20,20,28,28,31,31,31, 82 27,20,10,9,6,6,6,6,10,10,15,15,15,10,10,5, 83 5,5,10,10,20,18,20,20,25,25,19,18,20,10,6,6, 84 0,1,4,10,10,15,15,20,20,20,22,23,24,28,22,16, 85 14,8,0,0,10,10,20,30,31,30,28,26,30,30,28,28, 86 25,25,28,28,31,31,25,25,30,30,31,31,29,29,27,22 87 }; Listing 1: Tabelle TabFlackerlicht (Auszug aus dem Quellcode) Für die Ausgabe des analogen Tabellenwertes an einem digitalen Ausgang wird das Prinzip der Puls-Weiten-Modulation (kurz: PWM) verwendet. Die Abbildung 2 zeigt das Prinzip der Puls-Weiten-Modulation in Form von Zeitdiagrammen. Bei der Puls-Weiten-Modulation wird eine rechteckförmige Ausgangsspannung mit fixer
4 2 REALISIERUNGSIDEE 3 Abbildung 2: Flackerzyklus (Zeitdiagramme) Periodendauer T, aber variabler Impulsdauer t i erzeugt. Ist die Impulsdauer t i sehr kurz im Vergleich zur Pausendauer t p, dann ist die Fläche sehr klein. Für den Verbraucher (hier für die Leuchtdiode) bedeutet dies eine kleine Spannung. Die Leuchtdiode leuchtet daher schwach, oder gar nicht. Ist die Impulsdauer t i dagegen groß, dann ist die Pausendauer t p gering, und die Fläche ist daher groß, und die Leuchtdiode leuchtet sehr hell. Das Verhältnis zwischen Pulsdauer und Pausendauer bestimmt daher die Helligkeit der Leuchtdiode. Wichtig ist nur, dass die Periodendauer T (also die Summe von Impulsdauer t i und Pausendauer t p ) immer gleich bleibt (T = t i + t p ). In Abbildung 2 ist dies im unteren Teil noch einmal grafisch für einige Fälle dargestellt: links ist t i = 1 T (c), daher ist auch die Ausgangsspannung U 4 a nur ein viertel der maximal möglichen Spannung (d). Beim Fall etwa in der Mitte ist t i = t p = 1 T, daher ist auch die 2 Ausgangsspannung U a nur die Hälfte der maximal möglichen Spannung. Im letzen Fall ist t i = 7T, und die Ausgangsspannung U 8 a ist daher auch nur 7 der maximal möglichen 8 Spannung Damit das Fackern auch vom Auge als Flackern wahrgenommen wird, darf die Periodendauer T nicht zu groß werden, andererseits darf das Flackern auch nicht zu schnell erfolgen, das Flackern einer echten Kerze ist relativ langsam. Ein realistisches Flackern lässt sich etwa mit einer Periodendauer T von ca. 16ms (entspricht einer Frequenz von ca. 61Hz) erzeugen, und wenn jede Periode fünf mal wiederholt wird, dann ist das Flackern schon sehr realitätsgetreu. Listing 2 zeigt die für die softwaretechnische Realisierung des hier beschriebenen Flacker-
5 2 REALISIERUNGSIDEE 4 lichts das wichtigste Unterprogramm. Dieses Unterprogramm muss regelmäßig (hier alle 512µs) aufgerufen werden. 360 void FLACKERLICHT( void) 361 { 362 if (PWM Zaehler == 0) 363 { 364 LED1 = 1; // LED1 einschalten 365 LED2 = 1; // LED2 einschalten 366 LED3 = 1; // LED3 einschalten Gleichheitszaehler ; 369 if ( Gleichheitszaehler == 0) 370 { 371 Gleichheitszaehler = KONST GLEICHHEIT; TabZaehler1 ++; 374 PWM LED1 = TabFlackerlicht [ TabZaehler1 ] ; TabZaehler2 ++; 377 PWM LED2 = TabFlackerlicht [ TabZaehler2 ] ; TabZaehler3 ++; 380 PWM LED3 = TabFlackerlicht [ TabZaehler3 ] ; 381 } 382 } 383 el se 384 { 385 if (PWM Zaehler == PWM LED1) LED1 = 0; 386 if (PWM Zaehler == PWM LED2) LED2 = 0; 387 if (PWM Zaehler == PWM LED3) LED3 = 0; 388 } PWM Zaehler++; 391 i f ( PWM Zaehler == KONST PWM OBERGRENZE) 392 { 393 PWM Zaehler = 0; 394 } 395 } Listing 2: Unterprogramm FLACKERLICHT (Auszug aus dem Quellcode) Dieses Unterprogramm ist sehr einfach, und erzeugt genau das Zeitdiagramm gemäss Abbildung 2a) und 2b). Anzumerken ist, dass dies gleichzeitig für drei Leuchtdioden (unabhängig voneinander) erfolgt. Daher sind auch jeweils drei Register notwendig. Das Register Gleichheitsszaehler ist für das fünfmalige Wiederholen notwendig. Die Konstante KONST GLEICHHEIT beinhaltet demnach den Wert 5. Bei LED1 bis LED3 handelt es sich um die Portpins, an denen die Leuchtdioden angeschlossen sind. Die Register TabZaehler1 bis TabZaehler3 geben an, welcher Wert aus der Tabelle gelesen werden soll, und die Register PWM LED1 bis PWM LED3 beinhalten den Wert aus der Tabelle und somit die Impulsdauer. Die Konstante KONST PWM OBERGRENZE beinhaltet den Wert 32, und somit die Periodendauer. Damit alle benötigten Register klar deinierte Startwert besitzen müssen diese vor dem ersten Aufruf des Unterprogramms FLACKERLICHT initialisiert werden. Diese Aufgabe übernimmt unter anderem ein Unterprogramm namens INIT. Siehe Listing im Abschnitt 3.2 (Zeilen 287 bis 297).
6 3 DEMONSTRATIONSBEISPIEL 1 5 Wichtig: Das Unterprogramm FLACKERLICHT muss regelmässig vom Hauptprogramm aufgerufen werden. (siehe Listing im Abschnitt 3.2, Zeile 414). 3 Demonstrationsbeispiel 1 Das folgende Beispiel dient nur zur Demonstration. Es zeigt eine mögliche Einbindung des zuvor beschriebenen Unterprogramms. 3.1 Schaltung (Hardware) Die Abbildung 3 zeigt die sehr einfache Schaltung für das erste Demonstrationsbeispiel. Abbildung 3: Demonstrationsbeispiel 1 (Schaltung) Bei diesem Demonstrationsbeispiel besteht die Kerze aus drei roten Leuchtdioden (D2 bis D4) und einer gelben Leuchtdiode (D1). Die drei roten Leuchtdioden repräsentieren das Wachs der Kerze und die gelbe Leuchtdiode die Flamme. Als Mikrocontroller (IC1) dient hier ein PIC12F629. Auffällig beim Mikrocontroller ist die fehlende Oszillatorschaltung sowie die fehlende Resetschaltung. Die Oszillatorschaltung ist hier auch nicht notwendig, da diese Anwendung nicht zeitkritisch ist und daher der interne 4-MHz-Oszillator verwendet werden kann. Wichtig: Bei der Konfiguration des Mikrocontrollers müssen die entsprechenden Bits für die Verwendung des internen Oszillators und des internen Reset gesetzt werden! (siehe Listing im folgenden Abschnitt, Zeilen 99 bis 131). Der Kondensator C1 dient zur Entkoppelung der Betriebsspannung für den Mikrocontroller IC1. Für diesen Koppelkondensator sollte ein Keramiktyp verwendet werden. Dieser muss möglichst nahe beim Mikrocontroller angebracht werden.
7 3 DEMONSTRATIONSBEISPIEL Software 1 / / 2 / Flackerlicht ( elektronische Kerze) mit Tabelle in C (CC5X) / 3 / / 4 / Fuer drei Kerzen, oder für eine Flamme mit drei Leuchtdioden, wobei nur eine / 5 / Tabelle verwendet wird. Damit die drei Kerzen trotz nur einer Tabelle unabhaengig / 6 / voneinander flackern beginnt jeder Tabellenzaehler an einer anderen Position in / 7 / der Tabelle ( siehe Konstanten KONST TABSTART LEDx). / 8 / Die Zykluswiederholzeit des Flackerns betraegt bei einer Tabelle mit 256 Werten / 9 / 21 Sekunden ( s i e h e Unterprogramm FLACKERLICHT). Durch Kaskadierung mehrerer / 10 / Tabellen kann diese Zykluswiederholzeit verdoppelt, verdreifacht usw. werden. / 11 / / 12 / Takt : interner Takt / 13 / / 14 / Entwickler : Stefan Buchgeher / 15 / Entwi ckl ungsbegi nn der Sof twar e : 1 4. Oktober 2006 / 16 / Funktionsfaehig s e i t : 14. Oktober 2006 / 17 / Letzte Bearbeitung : 12. Januar 2009 / 18 / Compiler : CC5X / 19 / / / Incl ude Dateien / 22 #include <int16cxx.h> // Ist fuer die Interrupts notwendig 23 #include <INLINE. H> // I s t f u e r Assembleranweisungen notwendig / Pragma Anweisungen / 27 #pragma library 1 //.. library functions that are deleted i f unused / Gl obal e R e g i s t e r / 31 uns8 FlagISRHP ; // beinhaltet Botschaftsflags ISR > HP uns8 PWM Zaehler ; // Zaehlregister fuer Puls Weiten Modulation (PWM) 34 uns8 Gleichheitszaehler ; // Zaehlregister zum 5maligen wiederholen uns8 TabZaehler1 ; // Zeigt auf den aktuellen Index der Tabelle ( fuer 37 uns8 TabZaehler2 ; // j e d e LED/ Gluehbirne 38 uns8 TabZaehler3 ; uns8 PWM LED1; // PWM Wert aus der Tabelle fuer LED/Gluehbirne 1 41 uns8 PWM LED2; // PWM Wert aus der Tabelle fuer LED/Gluehbirne 2 42 uns8 PWM LED3; // PWM Wert aus der Tabelle fuer LED/Gluehbirne / Bits in den globalen Registern / 46 / Register FLAGSISRHP / 47 bit FlagISRHP. 0 ; / Por tbel egung / 51 / Port GPIO / 52 #pragma bit GPIO.2 53 #pragma bit GPIO.4 54 #pragma bit GPIO / Konstanten / 58 #define KONST PWM OBERGRENZE #define KONST GLEICHHEIT // Startwert in der Tabelle fuer die einzelnen LEDs 62 #define KONST TABSTART LED #define KONST TABSTART LED #define KONST TABSTART LED / Tabel l en / 68 // Tabelle fuer das Flackerlicht 69 const char TabFlackerlicht [256] =
8 3 DEMONSTRATIONSBEISPIEL { 71 17,20,22,22,25,25,27,31,30,23,19,18,19,17,15, 72 15,10,8,4,4,10,20,23,25,25,25,23,21,20,24,17, 73 19,25,29,31,27,22,29,29,29,31,31,27,21,16,10,5, 74 5,6,7,8,10,10,15,15,15,18,16,15,19,19,21,23, 75 23,22,23,21,23,21,19,17,17,15,15,14,15,15,15,17, 76 17,23,23,23,23,21,21,23,23,23,17,17,16,18,18,17, 77 13,17,15,21,21,25,25,28,20,20,17,16,14,10,8,5, 78 8,10,7,7,5,4,8,4,8,10,11,15,18,22,22,22, 79 28,28,31,31,28,25,29,31,27,22,29,29,29,31,31,27, 80 21,16,10,5,5,6,7,8,10,10,10,12,15,6,6,4,0, 81 0,0,5,10,10,16,25,25,28,20,20,28,28,31,31,31, 82 27,20,10,9,6,6,6,6,10,10,15,15,15,10,10,5, 83 5,5,10,10,20,18,20,20,25,25,19,18,20,10,6,6, 84 0,1,4,10,10,15,15,20,20,20,22,23,24,28,22,16, 85 14,8,0,0,10,10,20,30,31,30,28,26,30,30,28,28, 86 25,25,28,28,31,31,25,25,30,30,31,31,29,29,27,22 87 }; / Funkti onspr ototypen / 91 / I n i t i a l i s i e r u n g des Mikrocontroller / 92 void INIT(void) ; / Unterprogramm zur Erzeugung des Flackerlich ts / 95 void FLACKERLICHT( void) ; / Konf i gur ati on s B i t s / 99 #pragma config = 0b / ++ Bit (BG1:BG0) : Bandgap Calibration 101 > 0 0 : Lowest bandgap voltage : Highest bandgap voltage Bi t 11 9: Reserve Bit 8 (CPD) : Data Code Protection (Data Memory) : CPD on (= enabled ) 106 > 1 : CPD off (= disabled ) Bit 7 (CP) : Code Protection (Programm Memory) : CP on (= enabled ) 109 > 1 : CP off (= disabled ) Bi t 6 (BODEN) : Brown Out Detecti on 111 > 0 : BODEN on (= disabled ) : BODEN off (= enabled ) Bi t 5 (MCLRE) 114 > 0 : GP3 = I /O : GP3 = MCLR Bi t 4 (PWRTE) : Power Up Timer 117 > 0 : PWRT on (= enabled ) : PWRT o ff (= disabled ) Bi t 3 (WDTE) : Watchdog Timer 120 > 0 : WDT off (= disabled ) : WDT on (= enabled ) ) Bit 2 0 (FOSC2:FOSC0) : Oszillator S electio : LP Oszillator (GP4=CLKOUT, GP5=CLKIN) : XT Oszillator (GP4=CLKOUT, GP5=CLKIN) : HS Oszillator (GP4=CLKOUT, GP5=CLKIN) : EC Oszillator (GP4=I /O, GP5=CLKIN) 127 > 100 : INTOSC Oszillator (GP4=I /O, GP5=I /O) : INTOSC Oszillator (GP4=CLKOUT, GP5=I /O) : RC Oszillator (GP4=I /O, GP5=RC) : RC Oszillator (GP4=CLKOUT, GP5=RC) 131 / / ISR Timer0 / / / 137 / Interrupt Service Routine : / 138 / / 139 / Aufruf : / 140 / a l l e 512 us /
9 3 DEMONSTRATIONSBEISPIEL / / 142 / Aufgaben : / 143 / + w Register (= Arbeitsregister ) und Status Register zwischenspeichern / 144 / ( i n t s a v e r e gisters ) / 145 / + Zeitbasis fuer 512 Mikrosekunde erzeugen / 146 / + Das Timer Interrupt Flag T0IF wieder loeschen / 147 / + w Register (= Arbeitsregister ) und S tatusregister wiederherstellen / 148 / ( i n t r e s t o r e r e g i s t e r s ) / 149 / / 150 #pragma origin interrupt InterruptRoutine (void) // Interruptroutine 153 { 154 i n t s a ve r e g i s t e r s // W, STATUS (und PCLATH) retten // Beginn der eigentlichen ISR Routine 157 FlagZeitbasis = 1; T0IF = 0; // Timer Interrupt Flag T0IF wieder loeschen 160 // Ende der eigentlichen ISR Routine i n t r e s t o r e r e g i s t e r s // W, STATUS (und PCLATH) Wiederherstellen 163 } / Unterprogramme und Funktionen / / / 169 / INIT : / 170 / / 171 / Aufgabe : / 172 / I n i t i a l i s i e r u n g des Prozessor : / 173 / + Timer 0 (TMR0) loeschen / 174 / + Timer 0 ISR s o l l ca. a l l e 512 us aufgerufen werden, daher den Vorteiler mit 2 / 175 / laden ( bei einem internen 4 MHz Takt) / 176 / + Comparator/Analog Eingaenge deaktivieren / 177 / + Port als Ausgang ( fuer LEDs) definieren / 178 / + externen Variablen i n i t i a l i s i e r e n / 179 / + Interrupt freigeben ( Timer0 freigeben durch Setzen von GIE und T0IE im / 180 / INTCON Register / 181 / / 182 / Uebergabeparameter : / 183 / keiner / 184 / / 185 / Rueckgabeparameter : / 186 / keiner / 187 / / 188 void INIT(void) 189 { 190 // Timer 0 Interrupt 191 TMR0 = 0; // Timer 0 auf 0 voreinstellen 192 OPTION = 0b ; // Option Register (Bank 1) 193 / + Bi t 7 (ngppu) : Pull Up Widerstaende am GPIO : Pull Up aktiviert 195 > 1 : Pull Up deaktiviert Bit 6 (INTEDG) : Interrupt Edge Select Bit 197 > 0 : Interrupt on f a l l i n g edge of GP2/INT pin : Interrupt on r i s in g edge of GP2/INT pin Bit 5 (T0CS) : Timer 0 Clock source Select Bit 200 > 0 : Transition on GP2/T0CKI pin : Internal instruction cycle clock (CLKOUT) Bit 4 (T0SE) : TMR0 Source Edge Select bit 203 > 0 : Incr. on low to high tranition (GP2/T0CKI) : Incr. on high to low tranition (GP2/T0CKI) Bit 3 (PSA) : Prescaler Assignment bit 206 > 0 : Prescaler i s assigned to the TIMER0 module : Prescaler i s assigned to the WDT Bit 2 0 (PS2 : PS0) : Prescaler Rate Select bits 209 Bi t Value TMR0 Rate WDT Rate 210 > 000 : 1:2 1: : 1:4 1:2
10 3 DEMONSTRATIONSBEISPIEL : 1:8 1: : 1:16 1: : 1:32 1: : 1:64 1: : 1:128 1: : 1: 256 1: / // Comparator/Analog Eingaenge deaktivieren 221 GPIO = 0b ; // PORT (Bank 0) 222 / ++ Bi t 7 6 : Reserve Bi t 5 (GPIO5) : h i e r : Por tpi n i s low Bi t 4 (GPIO4) : h i e r : Por tpi n i s low Bi t 3 (GPIO3) : h i e r : Por tpi n i s low Bi t 2 (GPIO2) : h i e r : Por tpi n i s low Bi t 1 (GPIO1) : h i e r : Por tpi n i s low Bi t 0 (GPIO0) : h i e r : Por tpi n i s low 229 / CMCON = 0b ; // Comparator Control Register (Bank 0) 232 / + + Bi t 7, 5 : Reserve Bi t 6 (COUT) : Comparator Output b i t 234 When CINV = 0: 235 > 0 : Vin+ < Vin : Vin+ > Vin 237 When CINV = 1: : Vin+ > Vin : Vin+ < Vin Bi t 4 (CINV) : ComparatorOutput I n v e r s i o n Bi t 241 > 0 : Output not inverted : Output inverted Bi t 3 ( CIS) : Comparator Input Switch Bi t 244 When CM2:CM0 = 110 or 101: 245 > 0 : Vin connects to CIN : Vin connects to CIN Bi t 2 0 (CM2:CM0) : Comp. Mode b i t s ( Datenbl. S. 3 7) : Comparator Reset : Comparator with Output : Comparator without Output : Comp. with Output and Internal Ref : Comp. w/o Output and Internal Ref : M ul ti pl exed Input with I n t. Ref and Outp : Multiplexed Input with Int. Ref 255 > 111 : Off 256 / ANSEL = 0b ; // Analog Select Register (Bank 1) 259 / + Bi t 7 : Reserve Bi t 6 4 (ADCS2: ADCS0) : A/D Conv. Clock S e l e c t B i t s 261 > 000 : Fosc/ : Fosc/ : Fosc/ x11 : Frc : Fosc/ : Fosc/ : Fosc/ Bi t 3 0 (ANS3 ANS0) : Analog S e l e c t Bi t 269 (Between analog or d i gi t al function on pins 270 AN3:AN0, respectively ) 271 > 0 : Digital I /O : Analog i nput 273 / // Port 276 TRISIO = 0b ; // Richtungsregister PORT (Bank 1) 277 / ++ Bi t 7 6 : Reserve Bi t 5 ( TRISIO5) : h i e r Ausgang Bi t 4 ( TRISIO4) : h i e r Ausgang Bi t 3 ( TRISIO3) : h i e r Ausgang Bi t 2 ( TRISIO2) : h i e r Ausgang Bi t 1 ( TRISIO1) : h i e r Ausgang
11 3 DEMONSTRATIONSBEISPIEL Bi t 0 ( TRISIO0) : h i e r Ausgang 284 / // a l l e externen Variablen i n i t i a l i s i e r e n 287 PWM Zaehler = 0; Gleichheitszaehler = KONST GLEICHHEIT; LED1 = 1; 292 LED2 = 1; 293 LED3 = 1; TabZaehler1 = KONST TABSTART LED1; 296 TabZaehler2 = KONST TABSTART LED2; 297 TabZaehler3 = KONST TABSTART LED3; // Interrupt freigeben 300 INTCON = 0b ; // Interrupt Control Register (Bank 1) 301 / + Bit 7 (GIE) : Global Interrupt Enable bit : Disables a l l interrupts 303 > 1 : Enables a l l unmasked interrupts Bit 6 (PEIE) : Peripheral Interrupt Enable bit 305 > 0 : Disables a l l peripheral interrupts : Enables a l l unmasked peripheral interrupts Bit 5 (T0IE) : Timer 0 Overflow Interrupt Enable Bit : Disabled 309 > 1 : Enabled Bi t 4 (INTE) : GP2/INT Exter nal I n t e r r u p t Enable Bi t 311 > 0 : Disabled : Enabled Bi t 3 (GPIE) : Port Change I n t e r r u p t Enable Bi t 314 > 0 : Disabled : Enabled Bit 2 (T0IF) : Timer 0 Overflow Interrupt Flag bit 317 > 0 : TMR0 r egister did not overflow : TMR0 r egister has overflowed Bit 1 (INTF) : GP2/INT External Interrupt Flag bit 320 > 0 : GP2/INT external interrupt did not occur : GP2/INT external interrupt occurred Bit 0 (GPIF) : Port Change Interrupt Flag bit 323 > 0 : None of GP5:GP0 pins have changed state : One of the GP5:GP0 pins changed state 325 / 326 } / / 330 / FLACKERLICHT: / 331 / / 332 / Aufgabe : / 333 / PWM fuer LEDs erzeugen : / 334 / + PWM Zaehler = 0: Ausgang LEDx setzen und den naechsten Wert aus der Tabelle / 335 / TabFlackerlicht lesen. / 336 / + PWM Zaehler = PWM LEDx: Ausgang LEDx ruecksetzen. / 337 / + TabZaehlerx gibt an, welcher PWM Wert aus der Tabelle ( TabFlackerlicht ) aus / 338 / gegeben werden s o l l. / 339 / / 340 / Uebergabeparameter : / 341 / keiner / 342 / / 343 / Rueckgabeparameter : / 344 / keiner / 345 / / 346 / Anmerkung : / 347 / + Zykluswiederholzeit des Flackerns bei einer Tabelle mit 256 Werten : 21 Sek. / 348 / / 349 / 4 / 350 / T = = ca. 21 Sekunden / 351 / 4 [MHz] / 352 / / 353 / + Anz. der Tabel l enwer te ( h i e r : 256) /
12 3 DEMONSTRATIONSBEISPIEL / + Anz. der gleichen PWM ( hier : 5) / 355 / + max. PWM Zyklen > 61 Hz / 356 / + Vorteiler fuer Timer 0 ( hier : 2) / 357 / + Timer 0 Ueber l auf / 358 / + PIC i n t e r n e r Takt / 359 / / 360 void FLACKERLICHT( void) 361 { 362 if (PWM Zaehler == 0) 363 { 364 LED1 = 1; // LED1 einschalten 365 LED2 = 1; // LED2 einschalten 366 LED3 = 1; // LED3 einschalten Gleichheitszaehler ; 369 if ( Gleichheitszaehler == 0) 370 { 371 Gleichheitszaehler = KONST GLEICHHEIT; TabZaehler1 ++; 374 PWM LED1 = TabFlackerlicht [ TabZaehler1 ] ; TabZaehler2 ++; 377 PWM LED2 = TabFlackerlicht [ TabZaehler2 ] ; TabZaehler3 ++; 380 PWM LED3 = TabFlackerlicht [ TabZaehler3 ] ; 381 } 382 } 383 el se 384 { 385 if (PWM Zaehler == PWM LED1) LED1 = 0; 386 if (PWM Zaehler == PWM LED2) LED2 = 0; 387 if (PWM Zaehler == PWM LED3) LED3 = 0; 388 } PWM Zaehler++; 391 i f ( PWM Zaehler == KONST PWM OBERGRENZE) 392 { 393 PWM Zaehler = 0; 394 } 395 } / Hauptprogramm / / / 401 / Aufgaben des Hauptprogramms: / 402 / + Controller i n i t i a l i s i e r e n ( Unterprogramm INIT) / 403 / + Taetigkeiten /Unterprogramme, die a l l e zyklisch durchgefuehrt werden muessen : / 404 / + Wert fuer Flackerlichtausgabe ermitteln und an den Port Pins ausgeben. / 405 / / 406 void main (void) 407 { 408 INIT () ; // Controller i n i t i a l i s i e r e n while (1) // Endlosschleife 411 { 412 if ( FlagZeitbasis ) 413 { 414 FLACKERLICHT() ; 415 FlagZeitbasis = 0; // Botschaftsflag zuruecksetzen 416 } 417 } 418 } 3.3 Anmerkungen zur Software Der Quellcode für dieses Demonstrationsbeispiel wurde in C mit der freien Demoversion des CC5x-Compilers erstellt. (Anmerkung: Der CC5x-Compiler lässt sich sehr einfach in
13 3 DEMONSTRATIONSBEISPIEL 1 12 die Entwicklungsumgebung MPLAB des PIC-Herstellers Microchip einbinden). Die Software besteht im Wesentlichen aus einem sehr kurzen Hauptprogramm (Zeilen 406 bis 418, am Ende des Quellcodes), einer kurzen Interrupt-Service-Routine (kurz ISR, Zeilen 150 bis 163), das im Abschnitt 2 besprochen Unterprogramm zur Erzeugung des Flackerlicht (Zeilen 360 bis 395) und einem Unterprogramm zur Initialisierung des Mikrocontrollers (Unterprogramm INIT, Zeilen 188 bis 326). Die ISR wird alle 512 µs aufgerufen und besitzt hier nur die Aufgabe eine 512-µs-Zeitbasis zu erzeugen, indem sie ein Botschaftsflag für das Hauptprogramm erzeugt. Das Hauptprogramm reagiert auf dieses Botschaftsflag, indem es das Unterprogramm zur Erzeugung des Flackerlichts aufruft. Durch diesen Mechanismus wird dieses Unterprogramm zyklisch, alle 512 µs aufgerufen. Die Zeit von 512 µs ergibt sich, weil als Takt der interne 4-MHz-Takt verwendet wird, und weil der Vorteiler (VT) mit dem Wert 1:2 (TMR0 Rate, Zeile 210) geladen wird. Für diese Zeit gilt: ISRAUFRUF[µs] = V T f Quarz [MHz] = = 512µs 4 Das Hauptprogramm (main, Zeilen 406 bis 418) befindet sich nach der Initialisierung (Unterprogramm INIT) in einer Endlosschleife. Diese Schleife besitzt nur die Aufgabe ständig das Botschaftsflag (hier das Bit FLAGZEITBASIS) zu prüfen. Ist dieses Botschaftsflag gesetzt, so muss vom Hauptprogramm eine bestimmte Aufgabe ausgeführt werden. Diese Aufgaben sind in Form von Unterprogrammen vorhanden. Hier ist die Aufgabe das Unterprogramm zur Erzeugung des Flackerlichts aufzurufen (Zeile 414). Wichtig ist, dass das Botschaftsflag wieder gelöscht werden muss (Zeile 415). Das Unterprogramm (INIT, Zeilen 188 bis 326) dient zur Initialisierung des Mikrocontrollers. Hier werden unter anderem die Ports konfiguriert (Port dient als Eingang oder als Ausgang), der oder die Timer eingestellt usw. Dieses Unterprogramm ist vom Controllertyp abhängig und je nach Anwendung mehr oder weniger umfangreich. In diesem Unterprogramm werden auch noch die für die Erzeugung der Flackerlichter notwendigen Register initialisiert (Zeilen 287 bis 297), und zum Schluss dieses Unterprogramms erfolgt die Freigabe des hier benötigten Timer-0-Interrupt. Das für die Erzeugung des Flackerlichts wesentliche Unterprogramm (FLACKERLICHT, Zeilen 360 bis 395) wurde bereits im Abschnitt 2 behandelt und wird daher hier nicht nocheinmal beschrieben. Am Beginn des Quellcodes befinden sich die folgenden Definitionen und Einstellungen für die Anwendung des Mikrocontrollers als elektronische Kerze : Einbinden externer Codeteile (Zeilen 22 und 23) Diverse Anweisungen für den CC5x-Compiler (Zeile 27) Definition der globalen Register für die ISR (Zeile 31) und für die Erzeugung des Flackerlichts für die drei LEDs und/oder Glühbirnen (Zeilen 33 bis 42)
14 4 DEMONSTRATIONSBEISPIEL 2 13 Konstanten für die Erzeugung des Flackerlichts (Zeilen 58 bis 64) Die im Abschnitt 2 angesprochene Tabelle mit den Werten, die das Flackern nachbilden (Zeilen 69 bis 87) Die Funktionsprototypen für die hier verwendeten Unterprogramme (Zeilen 92 und 95) Die Konfiguration für den verwendeten PIC-Mikrocontroller (Zeile 99). Ganz besonders wichtig ist die Einstellung des richtigen Oszillators (hier: INTOSC, Zeile 127), und das der interne Reset verwendet wird (Zeile 114) Ab Zeile 134 beginnt der Quellcode der hier ausreichend mit Kommentaren versehen ist 4 Demonstrationsbeispiel 2 Die Abbildung 4 zeigt die sehr einfache Schaltung für das zweite Demonstrationsbeispiel. Abbildung 4: Demonstrationsbeispiel 2 (Schaltung) Im Vergleich zum Demonstrationsbeispiel 1 hat sich nur die Form der Kerze verändert. Hier besteht die Kerze aus drei roten Leuchtdioden (D8 bis D10, Wachs) und drei gelben Leuchtdiode (D5 bis D7, Flamme). Die Software ist die gleiche wie für das erste Demonstrationsbeispiel, und auch die weiteren Demonstrationsbeispiele verwenden die gleiche Software. 5 Demonstrationsbeispiel 3 Beim Demobeispiel gemäss Abbildung 5 besteht das Wachs der Kerze aus 2 größeren roten Leuchtdioden (D14 und D15) und die Flamme aus drei gelben Leuchtdiode (D11 bis D13)
15 6 DEMONSTRATIONSBEISPIEL 4 14 Abbildung 5: Demonstrationsbeispiel 3 (Schaltung) 6 Demonstrationsbeispiel 4 Die Kerze in Abbildung 6 hat eine ganz besondere Form. Hier bilden 6 rote Leuchtdioden (D17 bis D22) eine große Kerze und in der Mitte befindet sich eine große Flamme (D16). Abbildung 6: Demonstrationsbeispiel 4 (Schaltung)
Elektronischer Adventkranz
Elektronischer Adventkranz Stefan Buchgeher 29. September 2014 www.stefan-buchgeher.info kontakt@stefan-buchgeher.info Großambergstraße 106/3, A-4040 Linz (Österreich) ++43/699/11 29 63 38 Vorwort Dieses
Touchpanel und Touchscreen mit PIC-Mikrocontroller
Touchpanel und Touchscreen mit PIC-Mikrocontroller Stefan Buchgeher 14. September 2009 www.stefan-buchgeher.info kontakt@stefan-buchgeher.info Großambergstraße 106/3, A-4040 Linz (Österreich) ++43/699/11
16-Bit PCA Timer/Counter
4.5.1 Programmable Counter Array (PCA) Das Programmable Counter Array besteht aus fünf PCA-Modulen, die einen gemeinsamen 16- Bit Timer/Counter als Zeitbasis verwenden. ECI: Externer Clock-Eingang für
PIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
RC5 (Dekodierung mit PIC-Mikrocontroller)
RC5 (Dekodierung mit PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 29. September 2004 Inhaltsverzeichnis 1. RC5-PROTOKOLL...3 2. HARDWARE...4 3. SOFTWARE...5 3.1. Das Dekodierverfahren...
Puls Weiten Modulation (PWM)
Puls Weiten Modulation (PWM) Bei der Puls-Weiten-Modulation (PWM), wird ein digitales Ausgangssignal erzeugt, dessen Tastverhältnis moduliert wird. Das Tastverhältnis gibt das Verhältnis der Länge des
Drehimpulsgeber (Dekodierung mit PIC-Mikrocontroller)
Drehimpulsgeber (Dekodierung mit PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 2. März 2004 Inhaltsverzeichnis 1. GRUNDLEGENDES ZUM DREHIMPULSGEBER...3 2. HARDWARE...4 3. SOFTWARE...4
Ansteuerung eines LCD-Screens
Ansteuerung eines LCD-Screens Marcel Meinersen 4. Mai 2013 Marcel Meinersen Ansteuerung eines LCD-Screens 4. Mai 2013 1 / 27 Inhaltsverzeichnis 1 Allgemeines Was ist ein LCD-Screen? LCD 162C LED Marcel
Interrupt-Programmierung
Interrupt-Programmierung Am Beispiel des ATMEGA16 Microcontrollers Beispiel: Messung der Betriebszeit Die Betriebszeit zeigt an, wie lange der Rechner seit dem Booten läuft Hier: Aktualisierung der Betriebszeit
5x7-Dot-Matrix- Ansteuerung mit dem MAX7219 (mit PIC-Mikrocontroller)
5x7-Dot-Matrix- Ansteuerung mit dem MAX7219 (mit PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 25. September 2008 Inhaltsverzeichnis 1. EINLEITUNG... 5 2. HARDWARE... 5 3. ANSTEUERUNG
Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega
Einleitung... 11 Die Pins alphabetisch.... 12 Kapitel 1 Programmierung des ATmega8 und des ATmega328.... 15 1.1 Was Sie auf den nächsten Seiten erwartet... 19 1.2 Was ist eine Micro Controller Unit (MCU)?....
CCS Compiler Tutorial mit Beispielen
CCS Compiler Tutorial mit Beispielen Mit diesem Tutorial werden Sie den CCS Compiler kennenlernen, um mit ihm Projekte selbstständig erstellen zu können. Es werden zugleich die Programmierung und die Grundlagen
The amforth Cookbook angefangen
The amforth Cookbook Author: Datum: Erich Wälde 2009-02-22 angefangen 2 Inhaltsverzeichnis 1 Projekt mit ATMEGA 32 5 1.1 Board................................ 5 1.2 Beispiel Applikation........................
Stopp-Uhr. Erstellen Sie ein Programm (in Zweier- bzw. Dreier-Gruppen), welches folgende Bedingungen erfüllt:
Inhalt Aufgabenstellung... 1 Lösung... 2 System (Kontextdiagramm)... 2 Zustands-Übergangs-Diagramm... 2 Codeierung... 4 Main-Module... 4 Module-Button... 6 Module Timer... 8 Anhang... 12 Datenflussdiagramm...
Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen.
Interrupttechnik mit dem ATmega32 Unter einem Interrupt kann man sich einen durch Hardware ausgelösten Unterprogrammaufruf vorstellen. Aufgrund einer Interruptanforderung wird das laufende Programm unterbrochen
Versuch 4 M_Dongle Servotester. Labor Mikrocontroller mit NUC130. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A.
Versuch 4 M_Dongle Servotester Labor Mikrocontroller mit NUC130 Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber 11.06.2016 Inhalt 1 Einführung... 2 1.1 Grundlagen Modellbau-Servo...
Ansteuerung einer (Full- Color)-RGB- Leuchtdiode (mit PIC-Mikrocontroller)
Ansteuerung einer (Full- Color)-RGB- Leuchtdiode (mit PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 29. März 2004 Inhaltsverzeichnis 1. GRUNDLEGENDES ZUR (FULL-COLOR)-RGB-LEUCHTDIODE...3
Inhaltsverzeichnis 1 Ein-Bit-Rechner Mikrorechentechnik-Grundlagen Das Mikrocontrollersystem ein Überblick am Beispiel MSP430F1232
Inhaltsverzeichnis 1 Ein-Bit-Rechner... 15 1.1 Rechenwerk... 15 1.1.1 Register und Takt... 16 1.1.2 Zwischenspeicher... 17 1.1.3 Native und emulierte Datenmanipulationsbefehle... 18 1.2 Steuerwerk... 20
Speicheraufbau des AT89C5131
Speicheraufbau des AT89C5131 Prinzip: - getrennter Programmspeicher (ROM) und Datenspeicher (RAM) - interner Speicher (auf dem Chip) und externer Speicher (Zusatzbausteine) Das Experimentalsystem hat keinen
8.3 Taster am µcontroller
8.3 Taster am µcontroller AVR-KOMPENDIUM Nachdem im vorigen Beispiel das Port als Ausgang verwendet wurde erweitern wir dieses Beispiel um einen Taster - um auch das Einlesen von digitalen Signalen zu
IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)
// Include C Libriaries #include #define F_CPU 4000000UL #include #include #include #include // Definition der Segmente #define SEG_O
LED Skalenbeleuchtung mit einem Arduino
Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder
8.1 Grundsätzlicher Aufbau der Beispiele
107 8 Beispiele Nachdem nun viele theoretische Grundlagen gelegt wurden, kann man mit dem Programmieren eines Mikrocontrollers beginnen. In den folgenden Kapiteln werden verschiedene Möglichkeiten der
V cc. 1 k. 7 mal 150 Ohm
Ein Digitalvoltmeter Seite 1 von 6 Eine Multiplex-Anzeige Mit diesem Projekt wird das Ziel verfolgt, eine mehrstellige numerische Anzeige für Mikrocontroller-Systeme zu realisieren. Die Multiplex-Anzeige
Zähler- und Zeitgeber-Baugruppen
Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,
AVR-Mikrocontroller in BASCOM programmieren, Teil 2
jean-claude.feltes@education.lu 1 AVR-Mikrocontroller in BASCOM programmieren, Teil 2 13. Interrupts 13.1 Externe Interrupts durch Taster Wenn Taster mittels Polling abgefragt werden, wie in Teil 1 beschrieben,
Projektlabor. LCD Ansteuerung
Projektlabor LCD Ansteuerung Contents 1 LCD 3 2 Hardware des Displays 3 2.1 Hardware............................... 3 2.2 Verbindung.............................. 4 3 Softwareansteuerung 6 4 Quellen 10
Analog-Digital-Converter
Analog-Digital-Converter Funktionsprinzip ADC bei ATmega128 Beispiel in C Funktionsprinzip 1 Analog-Digital-Wandlung Wandelt analoge Spannung / analogen Strom (Messgröße) in einen binären Wert um, der
11: Echtzeitbetriebssystem ucos-ii
11: Echtzeitbetriebssystem ucos-ii Sie lernen anhand aufeinander aufbauender Übungen, welche Möglichkeiten ein Echtzeitbetriebssystem wie das ucosii bietet und wie sich damit MC-Applikationen realisieren
Lösungen zum Kurs "Mikrocontroller Hard- und Software
Lösungen zum Kurs "Mikrocontroller Hard- und Software Gerhard Schmidt Kastanienallee 20 64289 Darmstadt http://www.avr-asm-tutorial.net Lösung Aufgabe 2 Aufgabe 2 sbi DDRB,PB0 2 Takte sbi PORTB,PB0 2 Takte
Projektlabor WS 04/05 Ausarbeitung: Timer 555 Aurens Pratomo. - Timer Aurens Pratomo - 1 -
- Timer 555 - - 1 - Inhaltsverzeichnis 1 EINLEITUNG... 3 1.1 WAS IST EIN TIMER 555?... 3 1.2 EIGENSCHAFTEN... 3 1.3 BLOCKSCHALTBILD & INNENANSICHT... 3 1.4 BAUFORM... 5 2 PINS... 6 2.1 GROUND (MASSE)...
Application Note. PiXtend mit Hilfe der Control- & Status-Bytes konfigurieren und überwachen. Stand , V1.06
Application Note PiXtend mit Hilfe der Control- & Status-Bytes konfigurieren und überwachen Stand 21.02.2017, V1.06 Qube Solutions UG (haftungsbeschränkt) Arbachtalstr. 6, 72800 Eningen, Deutschland http://www.qube-solutions.de/
AVR-Mikrocontroller in BASCOM programmieren, Teil 3
jean-claude.feltes@education.lu 1/8 AVR-Mikrocontroller in BASCOM programmieren, Teil 3 Alle Beispiele in diesem Kapitel beziehen sich auf den Mega8. Andere Controller können unterschiedliche Timer haben.
Stefan Buchgeher 4. August 2014
Datenaustausch zwischen zwei (oder mehreren) PIC16Fxx-Mikrocontrollern via I 2 C TM in C (oder: Wie realisiere ich einen I 2 C TM -Slave mit einem PIC16Fxx-Mikrocontroller) Stefan Buchgeher 4. August 2014
analoge Ein- und Ausgänge
2016/07/17 13:39 1/5 analoge Ein- und Ausgänge analoge Ein- und Ausgänge Neben den digitalen Leitungen bietet der Arduino mehrere analoge Ein- und Ausgänge. analoge Ausgänge Die Ausgänge sind mit PWM bezeichnet.
Timer. Funktionsprinzip
Timer Funktionsprinzip 8-Bit-Timer des ATmega28 Beispiel Timer im Polling- und Interrupt-Betrieb Funktionsprinzip Timer ist ein in Hardware realisierter i Zähler ändert seinen Zählerstand mit einer vorgegebenen
Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld
C-Programmierung von MiCoWi mit der Keil-Entwicklungsumgebung µvision4 1. Erstellung eines neuen Projektes Menüpunkt: Project New µvision Project Es wird ein komplett neues Projekt in einem beliebigen
Tag 3 Timer, ADC und PWM
Tag 3 Timer, ADC und PWM 09/01/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Analog-Digital-Wandler Arbeitet durch schrittweise Näherung Aktivieren des ADCs durch ADC Enable
MODUL 6 TIMER UND COUNTER
µc Anwendungsprogrammierung in C Modul 6 / Seite 1 MODUL 6 TIMER UND COUNTER V1.1 J. Humer 1997 µc Anwendungsprogrammierung in C Modul 6 / Seite 2 INHALTSVERZEICHNIS MODUL 6 TIMER UND COUNTER Inhalt Seite
Parallel-IO. Ports am ATmega128
Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher
Ein-Bit-Rechner 15. Mikrorechentechnik-Grundlagen 29
Ein-Bit-Rechner 15 1.1 Rechenwerk 15 1.1.1 Register und Takt 16 1.1.2 Zwischenspeicher 17 1.1.3 Native und emulierte Datenmanipulationsbefehle 18 1.2 Steuerwerk 20 1.2.1 Programmsteuerbefehle 21 1.2.2
Entwicklungsboard 16F1824
Entwicklungsboard 16F1824 Inhaltsverzeichnis 1. Einleitung...2 2. Grundlegende Eigenschaften...2 2.1 Grundlegende Eigenschaften...2 2.2 Optionale Eigenschaften...3 3. Programmierung...3 4. Hardware...5
PWM. An-Phase Aus-Phase Tastverhältnis Helligkeit. Beispiel 1 8 ms 2 ms 8:2 bzw. 4:1 recht hell. Beispiel 2 3 ms 3 ms 3:3 bzw.
1. Wiederholung: PWM bei einer LED (ohne Timer1) Wenn man eine Leuchtdiode rasch abwechselnd ein- und ausschaltet, sehen wir ein schwächeres Leuchten, als wenn sie die ganze Zeit eingeschaltet ist. Je
C.1 Serielle Schnittstelle, erstes Testprogramm (a)
C.1 Serielle Schnittstelle, erstes Testprogramm (a) Verbinden Sie die Mikrocontrollerplatine mit dem USB-Anschluss Ihres Rechners und laden Sie das abgebildete Testprogramm auf den Mikrocontroller. Es
Temperaturmodul. Software. Bedeutung der Leuchtdioden. Kanal-LEDs. System-LEDs. Start nach Reset
Temperaturmodul Software Bedeutung der Leuchtdioden Alle LED sind sog. Bicolor-LEDs, die, wie der Name nicht sagt, drei Farben anzeigen können. Rot, grün und gelb, wenn rot und grün gemeinsam aktiviert
Mikrocontrollertechnik
Matthias Sturm Mikrocontrollertechnik Am Beispiel der MSP430-Familie mit 102 Bildern und 44 Tabellen Fachbuchverlag Leipzig im Carl Hanser Verlag Inhaltsverzeichnis 1 Ein-Bit-Rechner 15 1.1 Rechenwerk
RalfPongratz. Grundversion. Reaktivlichtmit7SegmentAnzeige
www.reaktivlicht.de RalfPongratz 7Segment Grundversion Reaktivlichtmit7SegmentAnzeige AuchalsBausatzerhältlichauf www.reaktivlicht.de Grundversion Reaktivlicht mit 7 Segment Anzeige Ralf Pongratz 13. September
Puls-Weiten-Modulation. Version: Datum: Autor: Werner Dichler
Puls-Weiten-Modulation Version: 0.0.2 Datum: 31.12.2015 Autor: Werner Dichler Inhalt Inhalt... 2 Grundlagen... 3 Methoden der Digital-Analog-Umsetzung... 3 Puls-Weiten-Modulation... 4 PWM-Filterung...
Tag 2 Eingabe und Interrupts
Tag 2 Eingabe und Interrupts 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Taster Direkt an Portpin angeschlossen (etwa PINB0, PIND3) Pull-Up-Widerstände einschalten!
Ansteuerung eines alphanumerischen. Display (mit PIC-Mikrocontroller)
Ansteuerung eines alphanumerischen LC- Display (mit PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 10. Oktober 2004 Inhaltsverzeichnis 1. GRUNDLEGENDES ZUM LC-DISPLAY...4 2. HARDWARE...4
Erzeugen von PWM-Signalen mit dem Atmel AVR-Mikrocontroller
Fachbereich Elektrotechnik und Informatik Labor für Angewandte Informatik und Datenbanken Praktikum Automatisierung/Echtzeitregelung (BAU/BER) Prof.Dr.-Ing. Coersmeier Erzeugen von PWM-Signalen mit dem
i2c-bus.de ASCII ZEICHEN AUF DEM HYPERTERMINAL Übungsaufgabe RS232 Schnittstelle Dokument NR.: AB-001-U-01
DA Dokument NR.: AB-001-U-01 ACII ZEICHEN AUF DEM HYPERTERMINAL Übungsaufgabe R232 chnittstelle P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken DA ACII Zeichen auf dem Hyperterminal Inhaltsverzeichnis
U5-2 Register beim AVR-µC
U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts
EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC 0C0H T2PS I3FR I2FR T2R1 T2R0 T2CM T2I1 T2I0 0C8H. AFH AEH ADH ACH ABH AAH A9H A8H Bitdresse
Siemens-C515C Special-Function-Register (Subset) MSB 7 6 5 4 3 2 1 LSB 0 COCH3 COCL3 COCH2 COCL2 COCH1 COCL1 COCH0 COCL0 Bit 0C1H CCEN EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC 0C0H IRCON C7H C6H C5H C4H
Einführung in die Arduino-Programmierung II
Einführung in die Arduino-Programmierung II Hochschule Niederrhein University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science 5. Dimmen einer LED
Einführung DIP & AVR EVK1100
Einführung DIP & AVR EVK1100 Umfang: ca. 2-4 Zeitstunden Display und Buttons (DIP) DIP (Treiber, Code) Aufgaben Emqopter GmbH 2 Display: DIP204 20 Spalten x 4 Zeilen (80 Zeichen) Anzeige von Informationen
Laborübung 4. Zustandsautomaten (Finite State Machines)
Laborübung 4 Zustandsautomaten (Finite State Machines) Für den Entwurf und die Beschreibung von digitalen Systemen bilden Zustandsautomaten (Finite State Maschines; FSMs) eine wesentliche Grundlage. Mit
Name : Klasse : Punkte : Note :
Name : Klasse : Punkte : Note : Zeit: 08.00 bis 09.30 Es dürfen alle Unterlagen verwendet werden. Die Aufgaben sind möglichst direkt auf den Blättern zu lösen (Antworten bitte in ganzen Sätzen!), bei Bedarf
i2c-bus.de I2C-002 KURZBESCHREIBUNG I 2 C Modul mit PCA8574 8-Bit I/O Port-Expander Dokument NR.: I2C-002-D-01
DA CL Dokument NR.: I2C-002-D-01 I2C-002 KURZBECHREIBUNG I 2 C Modul mit PCA8574 8-Bit I/O Port-Expander P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken DA CL Inhaltsverzeichnis 1. Modul
Übungen zu Systemnahe Programmierung in C (SPiC)
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 2016 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm
Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch
Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch Die wichtigsten Unterlagen/Tools Für das Praktikum Unterlagen/Kenntnisse/Tools wichtig: Datenblatt des AT80USB1287 µc Schaltplan des im Praktikum verwendeten
Da der Mikrocontroller mit den internen Timern sehr genau Zeiten messen kann, entschieden wir uns für die Zeitmessung.
Stufe 1: Das Projekt Fahrradcomputer wurde in der Stufe 1 zunächst auf die Messung der Geschwindigkeit gerichtet. Dabei soll der Mikrocontroller die Impulse auswerten, die von einem Sensor an der Fahrradgabel
LED Skalenbeleuchtung mit einem Arduino
Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder
Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.
Lehrprozessor: Coldfire MCF-5272 Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.45 Uhr Raum: Aula Bearbeitungszeit: 180 Minuten Erlaubte Hilfsmittel: Gedrucktes Vorlesungsskript von Prof. Neuschwander mit
Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs Programmieren 9.1.11 Microcontroller Kurs/Johannes Fuchs 1 General Purpose Input Output (GPIO) Jeder der Pins der vier I/O Ports kann als Eingabe- oder Ausgabe-leitung benutzt werden.
Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?
1 Übersicht Für die Programmierung steht ein Programm zur Verfügung. Hier kann der Quelltext geschrieben, überprüft, kompiliert und anschließend auf den Arduino geladen werden. Wenn ihr das Programm startet,
Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C
Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen
Experiment Digitaler Oszillator
Experiment Digitaler Oszillator Kurzfassung. Es werden zwei Typen von digitalen Oszillatoren vorgestellt: 1. DDS = Digital Direct Synthesis 2. Programmierbarer Clock An Beispielen werden die Funktion und
4 Formelsammlung C/C++
4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned
Einführung in die Welt der Microcontroller
Übersicht Microcontroller Schaltungen Sonstiges Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Inhaltsverzeichnis 1 Übersicht Möglichkeiten Einsatz 2 Microcontroller
Einführung in die Programmierung von Mikrocontrollern mit C/C++
Einführung in die Programmierung von Mikrocontrollern mit C/C++ Vorlesung Prof. Dr.-Ing. habil. G.-P. Ostermeyer Rechenleistung/Speicher Systemintegration Grundlagen der Mikrocontrollertechnik (Wiederholung)
GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm
U4 4. Übungsaufgabe U4 4. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-µC Register I/O Ports Interrupts AVR-Umgebung U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit
Verkettete Listen in C++ und Visual Basic 6. Stefan Buchgeher
Verkettete Listen in C++ und Visual Basic 6 Stefan Buchgeher 8. März 2007 Inhaltsverzeichnis 1 Grundlegendes zu Verketteten Listen (engl. linked list) 2 1.1 Was ist eine Verkettete Liste........................
MSP 430. Einführung. Was kann er? Hauptthemen. Wie sieht er aus? 64 / 100 polig. Was kann er? MSP 430 1
MSP 430 Mixed Signal Microcontroller MSP 430 Einführung Der Mikrocontrollers MSP430 von Texas Instruments Das Entwicklungsboard MSP-STK 430A320 http://www.ti.com Texas Instruments 1 Texas Instruments 2
Lehrfach: Mikrorechentechnik Versuch: Zeitmessung
ZM P_51_004_NEU. doc Lehrfach: Mikrorechentechnik Versuch: Zeitmessung Oc Hochschule Zittau/Görlitz; Fachbereich Elektro- und Informationstechnik Prof. Dr.-Ing. Kühne April 2005 Bearb.:Dipl.-Ing. Sbieschni
Beschaltung eines Mikrocontrollers. Jordi Blanch Sierra Steuerungsgruppe
Beschaltung eines Mikrocontrollers Jordi Blanch Sierra Steuerungsgruppe Gliederung Was ist ein Mikrocontroller? ATmega32 Pin-Beschreibung Grundschaltungen: - Minimale Grundschaltung - Grundschaltung mit
Serielle Schnittstelle, erstes Testprogramm (a)
Serielle Schnittstelle, erstes Testprogramm (a) Aufgabe C1 Verbinden Sie die Mikrocontrollerplatine mit dem USB-Anschluss Ihres Rechners und laden Sie das abgebildete Testprogramm auf den Mikrocontroller.
Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8
Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Viel Erfolg!! Komponenten
Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe
Digitalelektronik 1 Digitale Ausgabe Stefan Rothe 2015 02 14 Rechtliche Hinweise Dieses Werk von Thomas Jampen und Stefan Rothe steht unter einer Creative Commons Attribution-Non- Commercial-ShareAlike-Lizenz.
Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins
Prinzipieller Aufbau eines Schnittstellenbausteins DB /CS A0-Ai R/W Reset Takt Int IntAck zum µp Datenbus Puffer Steuerung Interruptsteuerung & IF Statusregister IE Steuerregister Befehlsregister Datenregister
LED board EB
LED board EB004-00-2 Inhalt 1. Über dieses Dokument...2 2. Allgemeine Information...3 3. Board-Layout...4 4. Schaltungsbeschreibung...5 Anhang 1 Schaltplan Copyright Matrix Multimedia Limited 2005 seite
Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung
Saug-Wisch-Roboter Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung TOPAN AVC 701 (702) Seite 1 Saug-Wisch-Roboter Elektronik M Saug Motor Radmotor Links FB 433 M Elektronik Arduino Nano DC-
i2c-bus.de I2C-001 KURZBESCHREIBUNG I 2 C Modul mit PCF8574 8-Bit I/O Port-Expander Dokument NR.: I2C-001-D-01
DA CL Dokument NR.: I2C-001-D-01 I2C-001 KURZBECHREIBUNG I 2 C Modul mit PCF8574 8-Bit I/O Port-Expander P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken DA CL Inhaltsverzeichnis 1. Modul
I²C-Routinen (für PIC-Mikrocontroller)
I²C-Routinen (für PIC-Mikrocontroller) Autor: Buchgeher Stefan Letzte Bearbeitung: 27. Februar 2004 Inhaltsverzeichnis 1. GRUNDLEGENDES ZU I²C...3 2. I²C-PROTOKOLL...3 3. HARDWARE...5 4. SOFTWARE...5 4.1.
Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller
Mini- Mikroprozessor-Experimentier-System mit einem 8051-Mikrocontroller Version 1.0b vom 04.10.2004 14:21 Inhalt 1 Einleitung...3 2 Hardware...4 2.1 Übersicht...4 2.2 Mikrocontroller AT89C51RB2...5 2.3
Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014
Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014 Aufgabe: Entwurf und Implementierung eines Weckers auf Basis des MSP430 Education Systems Beschreibung: Gegenstand des Praktikums ist der
Lotto. eine Projektarbeit in DVT. von Sven Schwab
Lotto eine Projektarbeit in DVT von Sven Schwab IAV 2 Nürnberg, den 21.07.2010 Agenda 1) Idee 2) Projektbestandteile - Software - Hardware 3) Projektdetails - Ablauf - Fehler die auftreten können 4) Quellcode
Die Technik hinter IoT: Arduino, Raspberry Pi & Co.
Die Technik hinter IoT: Arduino, Raspberry Pi & Co. Praxisbeispiele für den Hausgebrauch Uwe Steinmann MMK GmbH 25.-26. September 2017 Uwe Steinmann (MMK GmbH) Die Technik hinter IoT 25.-26. September
BOOTLOADER für AVR-Entwicklungsmodule
BOOTLOADER für AVR-Entwicklungsmodule mit ATxmega128A1 mit ATxmega256A3 Verzeichnis 1. Einleitung 3 2. Einstellungen 4 2.1. Fuse Bits 4 2.2. AVROSP Programm 5 2.2.1. Erläuterung der BAT-Dateien 5 2.2.2.
4-Kanal-Analoglogger für die Regelungstechnik
LTAM-FELJC jean-claude.feltes@education.lu 1 4-Kanal-Analoglogger für die Regelungstechnik Firmware Kommunikation mit dem PC Seriell mit 38400 Baud Kommandos:? = Liste aller Kommandos t = set time interval
Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.
Kapitel 2 Pulsweitenmodulation Die sogenannte Pulsweitenmodulation (kurz PWM) ist ein Rechtecksignal mit konstanter Periodendauer, das zwischen zwei verschiedenen Spannungspegeln oszilliert. Prinzipiell
Ausarbeitung NE555. Inhalt Seiten. Definition..S2. Eigenschaften...S2. Aufbau..S3. Pins...S3, S4. Anwendungsbeispiele
Timerbaustein NE555 Seite 1 von 10 Projektlabor SoSe 2005 Mustafa Hassan Khodr Ausarbeitung NE555 Inhalt Seiten Definition..S2 Eigenschaften...S2 Aufbau..S3 Pins...S3, S4 Anwendungsbeispiele 1. Monostabiler
Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch
Laborübung 2 Teil 1: Latches, Flipflops, Counter A 1 Abbildung 1 zeigt den Schaltkreis eines gated D-Latches. In Listing 1 wird exemplarisch ein Stück VHDL-Code vorgestellt, der den abgebildeten Schaltkreis
UART und Interrupts. Versuch Nr. 7
Universität Koblenz Landau Name:..... Institut für Physik Vorname:..... Hardwarepraktikum für Informatiker Matr. Nr.:..... UART und Interrupts Versuch Nr. 7 Vorkenntnisse: Aufbau und Arbeitsweise einer
Prinzipien und Komponenten eingebetteter Systeme
1 Prinzipen und Komponenten Eingebetteter Systeme (PKES) (2) Mikrocontroller I Sebastian Zug Arbeitsgruppe: Embedded Smart Systems 2 Veranstaltungslandkarte Fehlertoleranz, Softwareentwicklung Mikrocontroller
8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382
8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382 Der MAX5382 ist ein 8 Bit DA Wandler im SOT23 Gehäuse. Der MAX5380 besitzt eine interne Referenzspannung von 2 V, der MAX5381 von 4 Volt und der verwendete
SPI-Bus. 282 Ergänzung zu Kapitel 10
282 Ergänzung zu Kapitel 10 10.21. SPI-Bus Allgemeines Beim SPI-Bus (Serial Peripheral Interface) handelt es sich um einen synchronen 3-Draht Bus mit einer zusätzlichen Steuerleitung (/SS) (siehe Abbildung
Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7
1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht
i2c-bus.de IN/OUT - UART Einfache Ein- und Ausgabe über serielle Schnittstelle Interrupt-Betrieb Dokument NR.: AB-001-U-03
DA Dokument NR.: AB-001-U-03 IN/OUT - UART Einfache Ein- und Ausgabe über serielle chnittstelle Interrupt-Betrieb P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken IN/OUT mittels BUF (Interrupt)
Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:
Blinken Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: // Projekt 1 - LED Blinker int ledpin = 13; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH);