Создать 7 сегментный дисплей из управляемых светодиодных полос для отображения цифр

Новичок средней школы здесь

Я пытаюсь создать 7-сегментный двухзначный дисплей (88 в форме) для отображения количества раз, когда датчик расстояния обнаруживает что-то, проходящее перед ним

Вот что я сделал до сих пор ...


#define TRIG_PIN 5
#define ECHO_PIN 6
#define light 4

void setup() {

Serial.begin(9600);

 pinMode(TRIG_PIN, OUTPUT);
 pinMode(ECHO_PIN, INPUT);
 pinMode(light, OUTPUT);
 digitalWrite(TRIG_PIN, LOW);
}


float measureDistance() {

    
    unsigned long start_time, end_time, pulse_time;


    digitalWrite(TRIG_PIN, HIGH);
    delayMicroseconds(10);
    digitalWrite(TRIG_PIN, LOW);

    while (digitalRead(ECHO_PIN) == 0);

    
    start_time = micros(); 
    while (digitalRead(ECHO_PIN) == 1); 
    end_time = micros(); 
    pulse_time = end_time - start_time; 

   
    if (pulse_time > 23200) pulse_time = 23200;


    float dist_in = pulse_time / 148.0; 
    float dist_cm = pulse_time / 58.0;

    delay(60); 
    
    return dist_in;}

        int startScore = 0;

void loop() {

    float sensorDist = measureDistance();

    
    
    if (sensorDist<2){
       digitalWrite(light, HIGH); 
       int currentScore = startScore++;
       delay(500);
       Serial.println(currentScore);
    }
    else
    {
      digitalWrite(light,LOW);
    }

    }

Если я использую управляемые светодиодные полосы neopixel ws2812b...как я могу запрограммировать их для отображения currentScore? Я буду использовать два светодиода на сегмент, так что 14 на цифру и 28 в общей сложности для двухзначного дисплея.

Я не уверен, как поступить с FastLED и neopixel

Я нашел это с канала YouTube:

https://github.com/leonvandenbeukel/7-Segment-Digital-Clock-V2/blob/master/7-Segment-Clock/7-Segment-Clock.ino

Это довольно близко, за исключением того, что это часы

Что же мне делать? У меня мало знаний в программировании, извините за глупые вопросы. Извините за мой плохой английский. Спасибо, что прочитали :)

, 👍1

Обсуждение

ты прекрасно говоришь по-английски ... намного лучше чем многие носители английского языка, @jsotola

перейти к https://wokwi.com/playground/neopixel-strip ..... добавьте это перед setup() int segments[] = {255,255,0,255,0,0,0,255}; .... измените эту строку на "pixels.setPixelColor(i, segments[i], g, b);` ..... переместить "pixels.show" и "delay" вне цикла "for".... массив "segments" может быть двухмерным ... одна строка для каждого числа от 0 до 9, @jsotola

Есть 2 шага к тому, что вы хотите сделать: 1: узнайте, как управлять отдельными светодиодами, и 2: выясните, какие комбинации светодиодов составят какие числа. Затем просто зажгите правильные светодиодные комбинации в зависимости от значений, которые вы хотите отобразить., @Majenko