Tutorial Arduino #24

Display LED a 7 segmenti

Display LED a 7 segmenti (1 cifra) - Tutorial Arduino #24
Tutorial Arduino #23: Real Time Clock RTC DS3231
Tutorial Arduino #23
Real Time Clock RTC DS3231
Tutorial Arduino #25: Wireless nRF21L01+
Tutorial Arduino #25
Wireless nRF21L01+

Descrizione

In questo video scoprirai come usare il display a 7 segmenti con Arduino.

Imparerai come visualizzare e modificare le cifre e come trasformare il display in un dado digitale.

Scarica le risorse

Progetto: Numeri sul display (automatico)

Schema

Componenti

Codice

#define DATA_PIN 4#define LATCH_PIN 3#define CLOCK_PIN 2byte numbers[] = {  B11111100, // 0  B01100000, // 1  B11011010, // 2  B11110010, // 3  B01100110, // 4  B10110110, // 5  B10111110, // 6  B11100000, // 7  B11111110, // 8  B11110110 // 9};int n = 0;void setup() {  pinMode(DATA_PIN, OUTPUT);  pinMode(LATCH_PIN, OUTPUT);  pinMode(CLOCK_PIN, OUTPUT);}void loop(){  n = (n+1% 10;  writeRegister(numbers[n]);  delay(500);}void writeRegister(byte value){  digitalWrite(LATCH_PIN, LOW);  shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, value);  digitalWrite(LATCH_PIN, HIGH);}
scarica il file

Progetto: Dado digitale

Schema

Componenti

Codice

#define DATA_PIN 4#define LATCH_PIN 3#define CLOCK_PIN 2#define BUTTON_PIN 6byte numbers[] = {  B11111100, // 0  B01100000, // 1  B11011010, // 2  B11110010, // 3  B01100110, // 4  B10110110, // 5  B10111110, // 6  B11100000, // 7  B11111110, // 8  B11110110 // 9};int n = 0;void setup() {  pinMode(DATA_PIN, OUTPUT);  pinMode(LATCH_PIN, OUTPUT);  pinMode(CLOCK_PIN, OUTPUT);  pinMode(BUTTON_PIN, INPUT);  randomSeed(analogRead(A1));  writeRegister(0);}void loop(){  if (digitalRead(BUTTON_PIN) == HIGH) {    do {      displayNextNumber();    } while(digitalRead(BUTTON_PIN));     int r = random(2026);    for (int i = 0; i < r; i++) {      displayNextNumber();    }    writeRegister(numbers[n]);  }   delay(10);}void displayNextNumber() {  n = n % 6 + 1;  writeRegister(numbers[n] | B00000001);  delay(30);}void writeRegister(byte value){  digitalWrite(LATCH_PIN, LOW);  shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, value);  digitalWrite(LATCH_PIN, HIGH);}
scarica il file

Progetto: Numero sul display (manuale)

Schema

Componenti

Codice

#define DATA_PIN 4#define LATCH_PIN 3#define CLOCK_PIN 2#define PLUS_PIN 6#define MINUS_PIN 7#define POTENTIOMETER_PIN A0byte numbers[] = {  B11111100, // 0  B01100000, // 1  B11011010, // 2  B11110010, // 3  B01100110, // 4  B10110110, // 5  B10111110, // 6  B11100000, // 7  B11111110, // 8  B11110110 // 9};int n = 0;int lastPotentiometerValue = 0;void setup() {  pinMode(DATA_PIN, OUTPUT);  pinMode(LATCH_PIN, OUTPUT);  pinMode(CLOCK_PIN, OUTPUT);  pinMode(PLUS_PIN, INPUT);  pinMode(MINUS_PIN, INPUT);}void loop(){  updateNumber();  writeRegister(numbers[n]);  delay(10);}void updateNumber() {  int input = analogRead(POTENTIOMETER_PIN);  int potentiometerValue = input * 10 / 1024;   if (potentiometerValue != lastPotentiometerValue) {    n = potentiometerValue;    lastPotentiometerValue = potentiometerValue;  }   if (digitalRead(PLUS_PIN) == HIGH) {    n = (n+1% 10;    delay(200);  } else if (digitalRead(MINUS_PIN) == HIGH) {    n--;    if (n < 0) {      n = 9;    }    delay(200);  }}void writeRegister(byte value){  digitalWrite(LATCH_PIN, LOW);  shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, value);  digitalWrite(LATCH_PIN, HIGH);}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio
Tech Maker (italian tech project)
Utilizziamo i cookie per migliorare l'esperienza di navigazione, a fini statistici e di marketing. Per maggiori informazioni consulta la nostra informativa sulla privacy.