Почему код, чтобы чтобы программа выбирала случайный цвет не работает?
Я написал этот код, но он не работает (я хочу, чтобы программа выбирала случайный цвет и включала или выключала светодиод RGB). Я использую транзисторы для включения или выключения светодиодной ленты и AnalogWrite(pin , random(0, 255) не работает
int red = 11;
int green = 10;
int blue = 9;
int color = 1;
int stat = 1;
void setup() {
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
color = random(1, 3);
stat = random(0, 1);
if (color == 1 and stat == 0) {
digitalWrite(red, LOW);
}
if (color == 1 and stat == 1) {
digitalWrite(red, HIGH);
}
if (color == 2 and stat == 0) {
digitalWrite(green, LOW);
}
if (color == 2 and stat == 1) {
digitalWrite(green, HIGH);
}
if (color == 3 and stat == 0) {
digitalWrite(blue, LOW);
}
if (color == 3 and stat == 1) {
digitalWrite(blue, HIGH);
}
delay(1000);
}
@, 👍1
Обсуждение1 ответ
Лучший ответ:
Из справочника Arduino: random
Короче:
Синтаксис
случайный (максимум)
случайный (мин., макс.)
Параметры
min: нижняя граница случайного значения включительно (необязательно).
max: верхняя граница случайного значения, исключая.
Возврат
Случайное число от min до max-1. Тип данных: длинный.
В основном ваш первый случайный результат возвращает значения {1,2}, а второй даже лучше {0}
Итак, что я должен изменить в коде? (извините, но я не очень понимаю в программировании), @drmarton11
@ drmarton11 drmarton11 вы включаете транзистор, только если случайный (0,1) возвращает 1 и никогда не возвращает 1, он возвращает нули только потому, что 1 не включен. Если вы хотите, чтобы значение 0 равнялось 1, вы должны использовать случайный (0,2) или просто случайный (2), поскольку min по умолчанию равен 0, @KIIV
Благодарю вас ! Оно работает !, @drmarton11
- Управление цифровой адресной светодиодной лентой RGB 12 В с помощью Arduino
- Как изменить яркость светодиодного освещения?
- Чтение характеристического значения BLE в Arduino Uno
- Странное поведение со светодиодной лентой WS2812B RGB
- Светодиод RGB и кнопка в TinkerCAD
- Быстродействующий массив fill_solid
- Как подключить светодиодную RGB-матрицу 8x8 к Uno?
- RGB светодиодная лента 100м.
Можете быть более конкретными? «Не работает» может означать что угодно. Что случается?, @Nick Gammon
Ничего, ничего не происходит, @drmarton11