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 2 byte 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 6 byte 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 A0 byte 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

In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei


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