Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
projects:ehaserl [2011/12/30 18:38]
wanda [C-Programme: Wie macht Fisch eigentlich...]
projects:ehaserl [2012/09/19 01:18] (aktuell)
wanda
Zeile 1: Zeile 1:
-====== ​ehaserl ​======+====== ​EHaserl ​====== 
 +---- datatemplateentry project ---- 
 +template ​     : :​sys:​tpl:​project 
 +description ​  : Spielen mit dem EHaserl des easterHacks in München 
 +coordinators ​ : [[:​users:​wanda:​]],​ [[:​users:​samaki:​]] 
 +confidants ​   : [[:​users:​skruppy:​]] 
 +state_tags ​   : working, in progress 
 +type_tags ​    : elektro, software, AVR, ehaserl, C 
 +---- 
 ===== Löten ===== ===== Löten =====
     * Vorderseite:​ https://​brezn.muc.ccc.de/​~schneider/​badge/​board/​brd-top1.png     * Vorderseite:​ https://​brezn.muc.ccc.de/​~schneider/​badge/​board/​brd-top1.png
Zeile 41: Zeile 50:
   * CPU: 8-bit AVR   * CPU: 8-bit AVR
 === Pins === === Pins ===
-{{:​atmega88p.png?​350|}} +{{::​atmega88p.png?​350|}} 
-{{:​pins.png?​350|}}+{{::​pins.png?​350|}}
 === Ports === === Ports ===
-{{:​ports.png?​400|}}+{{::​ports.png?​400|}}
 == leds == == leds ==
   * RR - Pin 12 - PD6 (Rot rechts)   * RR - Pin 12 - PD6 (Rot rechts)
-  * RL - Pin 15 - PB1 (Rot links) +  * RL - Pin 15 - PB1 (Rot links) ​- PWM möglich 
-  * GL - Pin 16 - PB2 (Grün links)+  * GL - Pin 16 - PB2 (Grün links) ​- PWM möglich
   * GR - Pin 17 - PB3 (Grün rechts)   * GR - Pin 17 - PB3 (Grün rechts)
-{{:​leds.png?​300|}}+{{::​leds.png?​300|}}
 == Taster (an den Ohren) == == Taster (an den Ohren) ==
 Von der Rückseite aus betrachtet: Von der Rückseite aus betrachtet:
Zeile 60: Zeile 69:
   * LIGHT - Pin 24 - PC1   * LIGHT - Pin 24 - PC1
 ===== C-Programme:​ Wie macht Fisch eigentlich... ===== ===== C-Programme:​ Wie macht Fisch eigentlich... =====
-== Töne mit dem Piezo == +==== Töne mit dem Piezo ==== 
-http://​www.infolexikon.de/​blog/​atmega-music/​ +Infos sind aus: http://​www.infolexikon.de/​blog/​atmega-music/​ 
-**PWM** (PulsWeitenModulation) \\   +\\   
-**Wichtig zum Verständnis**:​ die PWM ändert ihre Frequenz NIE, NIEMALS! Alles was sich ändert, sind die Pulsweiten, also die high/​low-Phasen,​ in denen der Ausgang (z.B. Atmega8: PB1=OCR1A) getoggelt wird. Die PWM besitzt einen Counter, der ständig hochzählt, bei 8 bit von 0 bis 255.\\  ​+\\  ​ 
 +**1) Töne sind**...was?​!\\ ​  
 +Töne können weitgehend durch Sinus-Wellen erzeugt werden. Töne liegen wohl irgendwo zwischen 200Hz und 1,5kHz. Eine einzige __Sinus-Welle__,​ ein sauberer __8-bit Ton__! 
 + 
 +**2) PWM** (PulsWeitenModulation) \\   
 +**Wichtig zum Verständnis**:​ die PWM ändert ihre Frequenz NIE, NIEMALS! Alles was sich ändert, sind die Pulsweiten, also die high/​low-Phasen,​ in denen der Ausgang (z.B. Atmega8: PB1=OCR1A...Problem: beim ehaserl ist hier nicht der Piezo, sondern eine LED dran...schade!) getoggelt wird. Die PWM besitzt einen Counter, der ständig hochzählt, bei 8 bit von 0 bis 255.\\  ​
 Um die Pulsweite zu bestimmen, kann man nun einen Vergleichswert setzen. Ist dieser 0 gibt es keine high-phase, ist er 255, gibt es nur high-phasen.\\  ​ Um die Pulsweite zu bestimmen, kann man nun einen Vergleichswert setzen. Ist dieser 0 gibt es keine high-phase, ist er 255, gibt es nur high-phasen.\\  ​
-**Beispiel**:​ Bei 128 sind die high-phasen z.B. genauso lang wie die low-phasen.+**Beispiel**:​ Bei 128 sind die high-phasen z.B. genauso lang wie die low-phasen.\\   
 + 
 +**3) Wie** stell ich das an?\\   
 +Den Sinus im Atmega ausrechnen zu lassen würde die ganze Rechenzeit auffressen, der ist einfach nicht schnell genug für sowas.\\ ​  
 +Also erstellt man erstmal eine Tabelle für die Sinus-Werte,​ und die wird dann direkt ins Programm kodiert, so muss der Atmega nur noch i.d. Tabelle für die Werte nachschauen. 
 + 
 +**Frequenz-Tabelle**:​ 
 +<code c> 
 +// Noten-Frequenzen,​ 
 +// berechnet für 8Mhz und PWM ohne Prescaler 
 +#define c 542 
 +#define cis 574 
 +#define d 608 
 +#define dis 644 
 +#define e 682 
 +#define f 722 
 +#define fis 765 
 +#define g 810 
 +#define gis 858 
 +#define a 908 
 +#define b 962 
 +#define h 1019 
 +</​code>​ 
 +\\   
 +Zum Vergleich: die wirklichen **Ton-Frequenzen**\\ ​  
 +http://​de.wikipedia.org/​wiki/​Frequenzen_der_gleichstufigen_Stimmung 
 +(Frequenz/​2=wert aus tabelle) 
 +\\   
 +\\   
 +=> **Folge**:​\\  
 +Die Modulation __wirkt wie__ eine Sinus-Spannung (obwohl es nur ein Wechsel von an und aus ist)\\ ​  
 +Bild (PWM und Sinus): \\   
 +{{::​pwm.png?​300|}} 
 +\\  
 +(Bild-Quelle:​ http://​de.wikipedia.org/​w/​index.php?​title=Datei:​Pwm.png&​filetimestamp=20060323084447#​file) 
 +\\   
 +Weitere Infos:​\\ ​  
 +http://​www.mikrocontroller.net/​articles/​AVR-GCC-Tutorial#​PWM_.28Pulsweitenmodulation.29\\ ​  
 +http://​www.arduino.cc/​en/​Tutorial/​PlayMelody 
 +==== LED-Fading ==== 
 +Weil im eHaserl eine PWM nur an den beiden Augen möglich ist - nicht beim Piezo
projects/ehaserl.1325266697.txt.gz · Zuletzt geändert: 2011/12/30 18:38 von wanda