#1 Re: Програмування Arduino » Потрібна допомога з перевіркою коду » 2023-07-04 17:08:56

г0cть пише:

А вам скільки потрібно?

7-9 на стрічку і не менше 2 на кнопки

#2 Re: Програмування Arduino » Потрібна допомога з перевіркою коду » 2023-07-04 16:37:18

г0cть пише:

Просто задійте відповідні піни

що робити якщо недостатньо дозволених пінів
*на офіційному сайті прочитав що для Нано це тільки 6 пінів(3, 5, 6, 9, 10, 11)

#3 Re: Програмування Arduino » Потрібна допомога з перевіркою коду » 2023-07-04 16:13:51

г0cть пише:

1) п. 2
2) відповідь #4. Почитайте про analogWrite

зрозумів, яку команду варто використати в цьому випадку

#4 Програмування Arduino » Потрібна допомога з перевіркою коду » 2023-07-04 13:12:33

max9834kfj
відповідей: 14

написав код для поворотників з 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);
    }
  }
}

Підвал форуму