Mikrocontrolling Kurswelt

Der Einstieg ins Mikrocontrolling

Farbspiel mit der RGB

Hardware-Projekt
Unterschiedliche Bauarten

Im inneren der RGB-LED sind 3 einzelne LEDs miteinander verschaltet (Rot, Grün, Blau). Die Pins für Rot/Gelb/Blau können unterschiedlich angeordnet sein und auch hier gibt es Bauteile mit einer gemeinsamen Kathode oder einer gemeinsamen Anode.

Die digitalen PWM-Pins schalten das Signal sehr schnell ein und aus: Mit ihnen kannst du Helligkeit, Drehzahl und Leistung steuern. Sie werden beispielsweise verwendet, um

• eine RGB-LED anzusteuern

• eine LED zu dimmen

• RGB-Streifen zu programmieren

• die Position bei einem Servo-Motor einzustellen

• die Drehzahl bei Motoren zu regulieren

Eine LED leuchtet nicht so hell, wenn weniger Strom fließt.

Aber die PWM-Pins sind digitale Pins und können nur HIGH (5V) oder LOW (0V). Sie schalten sich sehr schnell an und aus. Das Dimmen ist also nur ein sehr schnelles ein- und ausschalten und die Helligkeit wird über den Duty Cycle ( = wie lange ist die LED an) bestimmt.

Da unser Auge nicht erkennt, dass die LED ein- und ausgeschaltet wird, sieht es so aus als würde sie weniger stark leuchten.

Programmiere mit Text
Programmiere mit CodeKIT

Der Befehl erzeugt ein PWM-Signal: Du kannst also nur die PWM-Pins verwenden. Bei unserem Mikrocontroller sind das die Pins 11 – 10 – 9 – 6 – 5 – 3 -> Achte auf die Tilde ~

Die Zahlen werden durch die (maximale) Auflösung von unserem Mikrocontroller bestimmt: 8 Bit

8 Bit ⇒ 28 = 256  mögliche Werte ⇒ [ 0 – 255 ]

255 ist die maximale Auflösung, die wir mit 8 Bit erreichen

				
					// 0% Leuchtkraft (= LED aus)
analogWrite(13, 0);
				
			
				
					// 50% Leuchtkraft (= LED 50% gedimmt)
analogWrite(13, 128);
				
			
				
					// 1000% Leuchtkraft (= LED an)
analogWrite(13, 255);
				
			

Pinbelegung

Mit einem einfachen Programm testen wir, welche Pinbelegung unser Bauteil hat: Programmiere die RGB so, dass sie entweder ROT oder GRÜN oder Blau leuchtet.

Hinweis: Das Programm steuert nacheinander alle 3 Pins an – du kannst natürlich auch jeden Pin einzeln ansteuern (nicht automatisch durchlaufend).

Hinweis: Das Programm steuert nacheinander alle 3 Pins an – du kannst natürlich auch jeden Pin einzeln ansteuern (nicht automatisch durchlaufend).

				
					
void setup(){
  pinMode(6, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(4, OUTPUT);
}

void loop(){
  
  // Pin 6 leuchtet (Farbe ?)
  analogWrite(6,255);
  delay(2000);
  analogWrite(6,0);
  
  // Pin 5 leuchtet (Farbe ?)
  analogWrite(5,255);
  delay(2000);
  analogWrite(5,0);
  
  // Pin 3 leuchtet (Farbe ?)
  analogWrite(3,255);
  delay(2000);
  analogWrite(3,0);
}
				
			

Farbspiel

Kannst du die RGB so programmieren, dass sie gelb – orange – violett anzeigt?

Hinweis: Im Video werden alle 256 x 256 x 256 = 16.777.216 Farben automatisch abgespielt.

Hier findest du Beispiele: Du musst natürlich nicht genau diese Werte verwenden, zu orange haben wir 2 unterschiedliche RGB-Codes verwendet.

Hinweis: Das ist ein Projekt für Fortgeschrittene (elegant programmiert) oder ein Projekt mit sehr viel Code 8dann programmiere nicht alle Farben!).