Ви не увійшли.
Сторінки 1
А вам скільки потрібно?
7-9 на стрічку і не менше 2 на кнопки
Просто задійте відповідні піни
що робити якщо недостатньо дозволених пінів
*на офіційному сайті прочитав що для Нано це тільки 6 пінів(3, 5, 6, 9, 10, 11)
1) п. 2
2) відповідь #4. Почитайте про analogWrite
зрозумів, яку команду варто використати в цьому випадку
написав код для поворотників з 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);
}
}
}
Сторінки 1