Создать 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
Это довольно близко, за исключением того, что это часы
Что же мне делать? У меня мало знаний в программировании, извините за глупые вопросы. Извините за мой плохой английский. Спасибо, что прочитали :)
@imdoingmath, 👍1
Обсуждение0
- Передача цвета функции без использования определенного Adafruit_NeoPixel
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Ошибка переменной does not name a type!
- Использование YS-IRTM с Arduino Uno
- IRRemote отправлять и получать тем же Arduino
- Объявленная переменная внутри void setup не видится в void loop
- 7-сегментный дисплей с потенциометром
- Акцептант векселей ИКТ
ты прекрасно говоришь по-английски ... намного лучше чем многие носители английского языка, @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