Du bist hier: Sensor > Schalter

Arduino Sensor Schalter

1. Vorbereiten

Der Schalter ist der simpelst mögliche Arduino Sensor. Er kann eine Verbindung herstellen oder unterbrechen. Je nachdem, wie du ihn verlötest.

2. Programmieren

2.1. Mit einem Schalter eine LED direkt steuern:

Sketch 1: Den logischen Zustand (Ein oder Aus) eines Schalters oder Tasters direkt abfragen
Sketch 2: Den %-Wert eines Schalters oder Tasters direkt abfragen

Beachte den kleinen Unterschied (Bilder 1+2):

  • beim ersten Beispiel wird der Schalter digital ausgelesen (kann nur Ein oder Aus sein)
  • beim zweiten Beispiel wird der Schalter analog ausgelesen. (kann 0% oder 100% sein)
  • Du erkennst den Unterschied am %-Zeichen in beiden Blöcken.

2.2. Einen Schalter abfragen, um eine LED zu steuern:

Folgendes Programm (Bild 3) fragt den Zustand des Schalters ab. Dies ermöglicht es, komplexere Vorgänge an seinen Zustand zu binden:

  • Das Programm fragt: ist der Schalter gedrückt?
Sketch 3: Den logischen Zustand eines Schalters oder Tasters mit wenn-(dann)-sonst abfragen

Das nächste Programm (Bild 4) schaltet die LED ebenfalls ein und aus..

  • Es fragt: ist der Schalterwiderstand höher oder tiefer als 60%?
Sketch 4: Den %-Wert eines Schalters oder Tasters mit wenn-(dann)-sonst abfragen

3. Aktivität

3.1. Mit dem Schalter eine LED einblenden lassen

Baue ein einfaches Möbel: Sideboard, Wandschränklein, Tischmöbel, Schatulle. Rüste dieses mit einer Innenbeleuchtung aus.

Entwickle ein Programm, welches eine LED ↗ oder einen Neopixl  Stripe ↗ einblenden lässt, wenn ein Schalter ↗ gedrückt (losgelassen) wird. Siehe folgendes Video:

3.2. Problem aufteilen

Teile die Aufgaben, die dein Mikrocontroller lösen muss, in Teilaufgaben auf:

Folgende PGLU-Hardware ist dazu notwendig:

Sketch 5: Mit einem Schalter oder Taster eine LED einblenden. Beginnt immer von neuem bei 0%, wenn fertig eingeblendet
  • Dieses Programm ist noch etwas dumm: Es weiss nicht was es tun soll, wenn die LED fertig eingeblendet ist. Daher beginnt der Blendvorgang bei geöffneter Tür immer wieder von neuem. Nicht gut :-(
  • Teste dieses Programm im PGLU-Simulator, wo du diese "Dummheit" gut nachvollziehen kannst.

3.3. Flexibler sein, dank Spiel mit Variablen

Hier eine bessere Lösung für den sensorgesteuerten Dimmer, welche ohne zähle-von-bis Schleife auskommt. Dank der Variable "Helligkeit" kann der Blend-Vorgang gestoppt werden, wenn die volle Helligkeit erreicht ist. Sie funktioniert nach dem Prinzip Helligkeit = Helligkeit + 1.

Sketch 6: Mit einem Schalter oder Taster eine LED einblenden. Stoppt, wenn 100% eingeblendet

3.4. Was passiert, wenn die Tür wieder geschlossen wird?

In der Welt der Programmierung gilt es, jede mögliche Situation vorauszusehen: z.B. was passiert, wenn die Tür wieder geschlossen wird, bevor die LED fertig eingeblendet ist?

Dieses Programm knüpft an das "Spiel mit Variablen" an und steuert die Variable "Helligkeit" je nach Zustand der Tür auf verschiedene Arten.

  • Es erhöht diese Variable alle 10ms um 1%, sobald die Tür geöffnet wird
  • Es vermindert diese Variable alle 10ms um 1%, sobald die Tür geschlossen wird
  • Es fragt: Ist die Variable schon bei 100%? Dann lasse sie dort.. deine LED soll/kann ja nie heller als 100% leuchten
  • Es fragt: Ist die Variable tiefer als 0%? Dann lasse sie dort.. deine LED kann ja nicht dunkler als 0% leuchten

 

  • Du kannst das Programm auch im Simulator testen
  • Es ist schon recht viel. Versuch es Zeile für Zeile zu verstehen.
  • Wozu ist der Block "pausiere 10 ms" gut? Nimm ihn einfach mal raus, dann verstehst du es!
Sketch 7: Mit einem Schalter oder Taster eine LED einblenden. Blendet aus, wenn Taster losgelassen

4. Challenge

4.1. Erweiterungen für die Möbelbeleuchtung

Erweitere deine Möbel Innenbeleuchtung nach deinem Geschmack:

  • Setze Neopixel Stripes ein (hier kaufen ↗)
  • Programmiere einen Farbverlauf:
    • beim Öffnen: dunkel-nacht-blau
    • wenn offen: hell-sonnig-warmweiss
  • Programmiere ein Lauflicht:
    • Beim Öffnen blenden die LEDs von der linken Seite her ein
    • Kreiere irgend eine tolle Lightshow, wenn die Tür bedient wird
  • Dein Möbel besitzt eine Glastüre?
    • Das obenstehende Programm kann bereits die LED ausblenden, sobald die Tür wieder geschlossen wird.
  • ...

4.2. Weitere Anwendungen

Das PGLU-Projekt Roboter Auto ist der Klassiker unter den Projekten und eignet sich hervorragend für den Einstieg in die Robotik.