ArduinoPotentiometer

Voor inzicht in de werking van het 7-segment LED display is het goed om eerst de 2 voorgaande projecten te doen.

In dit project gebruiken we een potentio meter en op het display geven we de waarde aan. Denk aan een display op een radio die van 0 tot en met 9 loopt en aangeeft hoe hard het geluid staat.



ArduinoBreadboard



ArduinoSketch
/*
  Measuring

  www.punthooft.nl
*/

// Constants
const byte numberMasks[10] = { 
                    B11111100, B01100000, B11011010, B11110010, B01100110, 
                    B10110110, B10111110, B11100000, B11111110, B11100110 
                    };
const int analogPot = A0;


// Variables
float value = 0;


// Setup function runs once when powerup the board and on reset 
void setup() {

  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(8,OUTPUT);
}


// The loop function runs over and over again forever
void loop() {

  value = analogRead(analogPot);

  float displayValue = (value / 1024) * 10;
  writeNumber(displayValue);
}


// Function to display the number of the 7-segment display
// Argument: int - the value to be displayed
void writeNumber(int number) {

  // Voorkom lezen buiten de waarden van de array
  if ((number < 0 || number > 9)) {
    return;
  }

  // Lees het 
  byte mask = numberMasks[number];

  // Begin met het eerste bit
  byte currentPinMask = B10000000;

  // Ga alle LEDs af
  for(int i = 2; i <= 8; i++) { 

    // Als er in het masker een '1' staat op de positie van het currentPinMask, zet de LED aan anders uit
    if (mask & currentPinMask) {
      digitalWrite(i,HIGH);
    } else { 
      digitalWrite(i,LOW);
    }

    // Schuif het bit een plaatsje op
    currentPinMask = currentPinMask >> 1;
  }
}}


ArduinoOpmerkingen

Een makkelijk aansluitschema en ook de code is niet heel moeilijk.

Het gedeelte met het 7-segment display is nog steeds helemaal gelijk. Enkel de variabele weerstand is toegevoegd. In de loop lezen we de waarde uit, deze loopt van 0 tot en met 1023. Omdat ons display loopt van 0 tot en met 9, delen we door deze 1023 en vermedigvuldigen we met 10. Deze waarde toenen we nu in het display.




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.