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


ArduinoSource code
/*
  Measuring

  (C) copyright www.punthooft.nl 2019
*/

// 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) {

  // Prevent reading outside the array
  if ((number < 0 || number > 9)) {
    return;
  }

  // Read 
  byte mask = numberMasks[number];

  // Start with first bit
  byte currentPinMask = B10000000;

  // For all the LEDs
  for(int i = 2; i <= 8; i++) { 

    // If in the mask a '1', turn LED on, otherwise OFF
    if (mask & currentPinMask) {
      digitalWrite(i,HIGH);
    } else { 
      digitalWrite(i,LOW);
    }

    // Shift one bit
    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.



Copyright 2019 www.punthooft.nl
We do not collect cookies for advertisement. Your data is never send to third parties.