ArduinoCharlieplexing with 2 LEDs

Dit is de eerste van een serie artikelen over Charlieplexing. De Arduino heeft niet heel veel digitale poorten wel een aantal, maar toch altijd eigenlijk te weinig. Met Charlieplexing kunnen we door een listig gebruik van de functies poorten besparen.

Een normale LED schakeling heeft een GND en een pin met spanning nodig. Als je 2 LED's wilt laten branden heb je dan 2x de ground nodig (wat dezelfde pin is gelukkig) plus een digitale pin voor iedere LED. 3 aansluitingen op de Arduino dus.

Het programma hieronder heeft een blinkMode die de ene keer op 0 staat en acties doet, en de keer erna op 1 en dan andere acties doet.

Wat we bij iedere actie doen is de pin 2 en 3 beiden op OUTPUT zetten. Hierna zetten we de ene pin op HIGH en de andere pin op LOW. De volgende keer doen we dat andersom we zetten beide weer op OUTPUT, maar zetten nu de eerste pin op LOW en de andere op HIGH. De stroom loopt nu andersom. Doordat LEDs alleen reagereren (gaan branden) als de stroom er op de juiste wijze doorloopt, zullen de LEDs gaan knipperen.



ArduinoBreadboard

In dit figuur lopen er geen lijnen naar GND. Er lopen slechts 2 lijnen vanuit de pins van de Arduino. Oranje en rood lopen beide eerst door een eigen weerstand. Dan is de blauwe weerstand verbonden met de + van de rode LED en tevens met de - van de groene LED. Andersom is de gele weerstand vervonden met de - van de rode LED en tevens met de + van de groene LED.



ArduinoSketch
/*
  Charlieplexing with 2 LEDs

  www.punthooft.nl
*/

// Variables
int blinkMode = 0;

void setup() {

}

void loop() {

  if (blinkMode == 0) {
     blinkMode = 1;

     pinMode(2, OUTPUT);
     pinMode(3, OUTPUT);
     digitalWrite(2, HIGH);
     digitalWrite(3, LOW);
    
  } else {
    blinkMode = 0;

    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
  }
  delay(1000);
}


ArduinoOpmerkingen

De gebruikte weerstanden zijn 220 Ohm

In het schema lopen er geen lijnen naar GND. Er lopen slechts 2 lijnen vanuit de pins van de Arduino. Oranje en rood lopen beide eerst door een eigen weerstand. Dan is de blauwe weerstand verbonden met de + van de rode LED en tevens met de - van de groene LED. Andersom is de gele weerstand vervonden met de - van de rode LED en tevens met de + van de groene LED.




Lees Verder in deze categorie

Copyright 2018 www.punthooft.nl

We do not collect cookies for advertisement. Your data is never send to third parties.