Ви не увійшли.
Сторінки 1
написав код для поворотників з RGB стрічки (правий/лівий жовтий поворотник і червоний стоп)
Даний код повинен виконувати такі функції:
1. при запуску на 3 секунди увімкнути всі світлодіоди відповідними кольорами
2. постійно світити червоним стоп_сигналом
3. при натисканні правої/лівої кнопки вмикати мигаючий поворотник і стоп(також мигаючий, зі зменшеною яскравістю)
4. поворотники повинні мигати доки натиснута кнопка
#define buttonPin_1 2 //кнопка_1
#define buttonPin_2 3 //кнопка_2
#define Left_R_PIN 4 //лівий червоний
#define Left_G_PIN 5 //лівий зелений
#define Left_B_PIN 6 //лівий синій
#define Right_R_PIN 7 //правий червоний
#define Right_G_PIN 8 //правий зелений
#define Right_B_PIN 9 //правий синій
#define Stop_R_PIN 10 //червоний стоп
void setup() {
//налаштування пінів RGBстрічки на вихід
pinMode(Left_R_PIN, OUTPUT);
pinMode(Left_G_PIN, OUTPUT);
pinMode(Left_B_PIN, OUTPUT);
pinMode(Right_R_PIN, OUTPUT);
pinMode(Right_G_PIN, OUTPUT);
pinMode(Right_B_PIN, OUTPUT);
pinMode(Stop_R_PIN, OUTPUT);
//налаштування пінів кнопок на вхід
pinMode(buttonPin_1, INPUT);
pinMode(buttonPin_2, INPUT);
//при запуску увімкнути всі світлодіоди своїми кольорами на 3 секунди
analogWrite(Stop_R_PIN, 255);
analogWrite(Right_R_PIN, 255);
analogWrite(Right_G_PIN, 255);
analogWrite(Right_B_PIN, 0);
analogWrite(Left_R_PIN, 255);
analogWrite(Left_G_PIN, 255);
analogWrite(Left_B_PIN, 0);
delay(3000);
analogWrite(Stop_R_PIN, 0);
analogWrite(Right_R_PIN, 0);
analogWrite(Right_G_PIN, 0);
analogWrite(Right_B_PIN, 0);
analogWrite(Left_R_PIN, 0);
analogWrite(Left_G_PIN, 0);
analogWrite(Left_B_PIN, 0);
}
void loop() {
analogWrite(Stop_R_PIN, 255);
delay(500);
analogWrite(Stop_R_PIN, 0);
delay(500);
if (digitalRead(buttonPin_1) == HIGH) { //якщо кнопка_1 натиснута
delay(500); //почекати 0,5 секунди
if (digitalRead(buttonPin_1) == HIGH) { //якщо досі натиснута, увімкнути правий поворотник
analogWrite(Stop_R_PIN, 180);
analogWrite(Right_R_PIN, 255);
analogWrite(Right_G_PIN, 255);
analogWrite(Right_B_PIN, 0);
delay(500);
analogWrite(Stop_R_PIN, 0);
analogWrite(Right_R_PIN, 0);
analogWrite(Right_G_PIN, 0);
analogWrite(Right_B_PIN, 0);
delay(500);
}
}
if (digitalRead(buttonPin_2) == HIGH) { //якщо кнопка_2 натиснута
delay(500); //почекати 0.5 секунди
if (digitalRead(buttonPin_2) == HIGH) { //якщо досі натиснута, увімкнути лівий поворотник
analogWrite(Stop_R_PIN, 180);
analogWrite(Left_R_PIN, 255);
analogWrite(Left_G_PIN, 255);
analogWrite(Left_B_PIN, 0);
delay(500);
analogWrite(Stop_R_PIN, 0);
analogWrite(Left_R_PIN, 0);
analogWrite(Left_G_PIN, 0);
analogWrite(Left_B_PIN, 0);
delay(500);
}
}
}
Неактивний
У чому потрібна допомога? Зібрати макет і первірити чи блимають світлодіоди? Чи в чомусь іншому?
У чому потрібна допомога? Зібрати макет і первірити чи блимають світлодіоди? Чи в чомусь іншому?
Потрібно перевірити правильність коду, чи буде працювати як задумано
Потрібно перевірити правильність коду, чи буде працювати як задумано
Не буде працювати, якщо ви мали на увазі uno/nano board
Як задумано - не буде
Як задумано - не буде
чому? В чому помилка?
1) п. 2
2) відповідь #4. Почитайте про analogWrite
1) п. 2
2) відповідь #4. Почитайте про analogWrite
зрозумів, яку команду варто використати в цьому випадку
Неактивний
Просто задійте відповідні піни
Просто задійте відповідні піни
що робити якщо недостатньо дозволених пінів
*на офіційному сайті прочитав що для Нано це тільки 6 пінів(3, 5, 6, 9, 10, 11)
Неактивний
А вам скільки потрібно?
А вам скільки потрібно?
7-9 на стрічку і не менше 2 на кнопки
Неактивний
По-перше, у вас "поворотники" просто вмикаються/вимикаються, тобто analogWrite(xxx,255/0) можна цілком замінити на digitalWrite(xxx, HIGH/LOW). По-друге, синій світлодіод взагалі завжди вимкнений. Його або не підключати зовсім, або, для перестраховки, підключити постійно на gnd. analogWrite залишається лише стоп-сигнал
R-G ще й можна з’єднати між собою
Перший пункт також не виконується, бо не всі світлодіоди вмикаються на 3 секунди. Відповідь #13 (по-друге) може виправити цю ситуацію, або змініть умови.
Сторінки 1