Hallo zusammen,
das gehört zwar nicht so ganz in die Rubrik Roboter, aber auch hier kommen ein Mikrocontroller, viele bunte LEDs, ein Motor und mehr vor.
Mein Problem ist, daß ich mit meinem Atmega8535 und zwischengeschalteten ULN2804A insgesamt neun Gruppen von jeweils 3x3 (parallelgeschalteten) RGB-LEDs und einen Gleichstrommotor steuern möchte, was aber nicht so recht klappt. Egal, ob ich den Taster drücke oder nicht, die LEDs leuchten immer, und der Motor läuft ebenfalls kontinuierlich.
Das war von mir natürlich nicht vorgesehen.
Der Atmel sitzt auf dem Evaluationsboard von Pollin (siehe Datenblatt unter http://www.pollin.de/shop/downloads/D810022B.PDF), das unser kompletter Elektronikkurs für dieses Semester bestellt hat.
Urpsrünglich hatte ich ein eigenes Board zusammengelötet, nachdem dies aber nicht richtig funktionierte, habe ich das Pollin-Board ein wenig umgebaut. Auf Seite 8 des PDF-Dokuments ist der Schaltplan zu sehen.
Außerdem habe ich diesem Beitrag einen vereinfachten Schaltplan meiner Anwendung angehängt. Kondensatoren, Widerstände u.a., die bereits in dem PDF aufgeführt sind, habe ich nicht noch einmal explizit angegeben.
Entschuldigt bitte, daß die Verbindungen so kreuz und quer verlaufen, aber durch die Anschlüsse der Wannenstecker zu den jeweiligen Flachbandkabeln war das die beste Lösung.
Hier ist der Bascom-Code:
Code:
$regfile = "m8535.dat"
$crystal = 1000000
$baud = 4800
Config Porta.0 = Output
Config Porta.1 = Output
Config Porta.2 = Output
Config Porta.3 = Output
Config Porta.4 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Porta.7 = Output
Config Portb.0 = Input
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
Config Portb.6 = Output
Config Portb.7 = Output
Config Portc.0 = Input
Config Portc.1 = Output
Config Portc.2 = Output
Config Portc.3 = Output
Config Portc.4 = Output
Config Portc.5 = Output
Config Portc.6 = Output
Config Portc.7 = Output
Config Portd.0 = Input
Config Portd.1 = Input
Config Portd.2 = Output
Config Portd.3 = Output
Config Portd.4 = Output
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
Led1_r Alias Portb.3
Led1_g Alias Portb.5
Led1_b Alias Portb.4
Led2_r Alias Portb.1
Led2_g Alias Portb.2
Led2_b Alias Porta.7
Led3_r Alias Portc.7
Led3_g Alias Porta.6
Led3_b Alias Porta.5
Led4_r Alias Porta.3
Led4_g Alias Porta.4
Led4_b Alias Portc.6
Led5_r Alias Portc.4
Led5_g Alias Portc.5
Led5_b Alias Porta.2
Led6_r Alias Porta.6
Led6_g Alias Porta.1
Led6_b Alias Portc.3
Led7_r Alias Portc.2
Led7_g Alias Portc.1
Led7_b Alias Portb.7
Led8_r Alias Portb.6
Led8_g Alias Portd.6
Led8_b Alias Portd.7
Led9_r Alias Portd.5
Led9_g Alias Portd.3
Led9_b Alias Portd.4
Motor Alias Portd.2
Taster Alias Pind.0
Frequenz Alias Pinb.0
Amplitude Alias Pinc.0
Do
If Taster = 1 Then
Led1_r = 1
Led1_g = 1
Led1_b = 1
Led2_r = 1
Led2_g = 1
Led2_b = 1
Led3_r = 1
Led3_g = 1
Led3_b = 1
Led4_r = 1
Led4_g = 1
Led4_b = 1
Led5_r = 1
Led5_g = 1
Led5_b = 1
Led6_r = 1
Led6_g = 1
Led6_b = 1
Led7_r = 1
Led7_g = 1
Led7_b = 1
Led8_r = 1
Led8_g = 1
Led8_b = 1
Led9_r = 1
Led9_g = 1
Led9_b = 1
Motor = 1
Else
Led1_r = 0
Led1_g = 0
Led1_b = 0
Led2_r = 0
Led2_g = 0
Led2_b = 0
Led3_r = 0
Led3_g = 0
Led3_b = 0
Led4_r = 0
Led4_g = 0
Led4_b = 0
Led5_r = 0
Led5_g = 0
Led5_b = 0
Led6_r = 0
Led6_g = 0
Led6_b = 0
Led7_r = 0
Led7_g = 0
Led7_b = 0
Led8_r = 0
Led8_g = 0
Led8_b = 0
Led9_r = 0
Led9_g = 0
Led9_b = 0
Motor = 0
End If
Loop
End
Die Funktionen "Frequenz" und "Amplitude" werden später für den Audioeingang (mit Mikrofon, Vorverstärker, Verstärkerschaltung mit Operationsverstärker und Schmitt-Trigger) verwendet. Damit sollen Muster und Farben der LEDs wie auch die Geschwindigkeit des Motors geregelt werden.
Der Vandalismustaster wird dann zwischen verschiedenen Subprogrammen umschalten, so daß sich unterschiedliche Reaktionen auf Umgebungsgeräusche wählen lassen.
Ich bin in Sachen Elektronik noch ein Anfänger, weswegen ich nicht weiß, wo der Fehler liegen könnte. Wer kann mir eventuell sagen, wo ich etwas falschgemacht habe? Jede Hilfe ist willkommen.
Bis dann, tschüß,
Nico
Lesezeichen