kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu
kramann.info
© Guido Kramann

Login: Passwort:




Laborübung 3

  • Schreiben Sie das im vorangehenden Kapitel veranschaulichte Programm:
  • Wird kein Taster gedrückt, ist der an's Testboard angeschlossene Servo in 0 Grad-Position und in der Anzeige erscheint eine 1.
  • Wird der Taster bei PB0 gedrückt, ist der an's Testboard angeschlossene Servo in -45Grad Grad-Position und in der Anzeige erscheint eine 0
  • Wird der Taster bei PB1 gedrückt, ist der an's Testboard angeschlossene Servo in +45Grad Grad-Position und in der Anzeige erscheint eine 2
  • Zur rascheren Umsetzung sollten Sie schauen, ob Sie Klassen aus Kapitel 4.5 verwenden können. Den Quellcode können Sie den downloadbaren Projekten entnehmen.
  • Als PWM-Geber soll Timer0 benutzt werden.
  • Dieser liefert sein PWM-Signal auf Pin 4 == PB3 == OC0.
  • Klären Sie im Vorfeld, ob sich überhaupt ein Phasen korrektes PWM-Signal, wie es für den Servo nötig ist mit Timer0 bei 9,216MHz Taktrate erzeugen läßt.
  • Falls das möglich ist, dann bestimmen Sie den richtigen Teiler N (vergl. Kapitel 8.4) und berechnen Sie die notwendigen Belegungen für das Register OCR0 bei den geforderten Winkelstellungen.
  • Hier noch einmal die wichtigsten Informationen in Stichpunkten:
Servo:

schwarz: GND
rot:     +5V
gelb:    PWM-Eingang

2. 4er-Steckplatz (vergl. Schaltplan Testboard Kapitel 1.5.4, 
Fehler in Schaltplan: 1./2. 4er-Steckplatz vertauscht.):

                    von Servo verbinden:
---
|O|  GND            schwarz
|O|  AIN0           nichts
|O|  AIN1 / OC0     gelb
|O|  +5V            rot
---

Periode Servo: 10..20ms

PWM-Breite Mitte:    1,5ms
PWM-Breite -45 Grad: 1,0ms
PWM-Breite +45 Grad: 2,0ms

Timer0 - Berechnung der Frequenz bei Phasenkorrektem Signal:

s. Datenblatt S.75:
f = fclk / (N*510)

s. Datenblatt S.79/80
Tabelle:
N     CS02 CS01 CS00
1       0    0    1
8       0    1    0
64      0    1    1
256     1    0    0
1024    1    0    1

 

Code 0-1: Spezifizierungen zur Aufgabe.