RGB и потенциометр

Как запустить эту программу???

int x=0;
int P1=A5;
int P2=A4;
int P3=A3;
int R1=3;
int G1=5;
int B1=6;
int R2=9;
int G2=10;
int B2=11;
int sValue1;
int sValue2;
int sValue3;
int oValue1;
int oValue2;
int oValue3;
int timer(1000);

void setup() {
 pinMode(P1,INPUT);
 pinMode(P2,INPUT);
 pinMode(P3,INPUT);
 pinMode(R1,OUTPUT);
 pinMode(G1,OUTPUT);
 pinMode(B1,OUTPUT);
 pinMode(R2,OUTPUT);
 pinMode(G2,OUTPUT);
 pinMode(B2,OUTPUT); 

}

void loop() {

sValue1=analogRead(P1);
sValue2=analogRead(P2);
sValue3=analogRead(P3);

oValue1=map(sValue1,0,1023,0,255); 
oValue2=map(sValue2,0,1023,0,255);
oValue3=map(sValue3,0,1023,0,255);

if ((sValue1=0)&&(sValue2=0)&&(sValue3=0));
{
  setColor1(0,255,255);
  delay(timer);
  setColor2(255,0,0);
}
}

void setColor1(int red1, int green1, int blue1){
  {
    analogWrite(R1,red1);
    analogWrite(G1,green1);
    analogWrite(B1,blue1);
  }
}

void setColor2(int red2, int green2, int blue2){
  {
    analogWrite(R2,red2);
    analogWrite(G2,green2);
    analogWrite(B2,blue2);

  }
}

, 👍1

Обсуждение

Также я получаю сообщение об ошибке компиляции из этой программы, которую я запустил, и я не знаю, что не так., @D3DSEC

Добро пожаловать в СО. Вам следует отредактировать свой вопрос, выделить весь блок кода и нажать кнопку «Форматировать как код». (это похоже на открывание и закрывание фигурных скобок {}.) Неформатированный код действительно трудно читать. (и никогда не публикуйте в комментариях более короткого фрагмента кода, поскольку они не разрывают строки.), @Duncan C

Что значит «как мне запустить эту программу?» Вы имеете в виду, как установить и запустить его на Arduino?, @Duncan C

Теперь у него ошибка компиляции для платы. Как это исправить?, @D3DSEC

@DuncanC Я так думаю. Вопрос может быть «Как запустить этот скетч из исходного кода», скриншот не имеет значения., @caligari

@D3DSEC Какую ошибку компиляции вы получаете? Кстати: ваша строка if неверна. Замените = на ==. Также удалите ; в конце строки., @mic

интервал B1=6; ^ статус выхода 1 Ошибка компиляции для платы Arduino/Genuino Uno., @D3DSEC

Я не знаю, что не так с моим int B1=6;, @D3DSEC

Чувак, тебе нужно улучшить свой вопрос. Более четко сформулируйте свою проблему, а затем определите, какие именно строки вызывают у вас затруднения, и какие именно сообщения об ошибках вы получаете., @Duncan C

Я думаю, что int timer(1000); должен быть int timer = 1000;. sValue1=0 должно быть sValue1==0 или фактически соответствовать назначению <=50%; sValue1<=127., @Gerben

Я также хотел бы отметить, что использование потенциометров для сбора значений 0 или 1 и последующего управления светодиодом RGB абсурдно. Потенциалы следует использовать в качестве делителей напряжения для подачи на аналоговые входы, а затем настроить Arduino на подачу сигналов ШИМ на различные цветовые каналы светодиода RGB, пропорциональные входам на потенциометры., @Duncan C


3 ответа


0
  1. Установите Arduino IDE
  2. Новый скетч
  3. Вставьте код
  4. Подключите плату Arduino к компьютеру
  5. Загрузить скетч
,

0

Также я получаю сообщение об ошибке компиляции из этой программы

Очевидно, что B1 уже определен как что-то, как и ваши A5, A4 и A3.
Скорее всего, у вас возникнет такая же проблема с B2.

,

Смотрите ответ Джота. Похоже, проблема в B1, потому что, очевидно, в библиотеке Arduino есть некоторые двоичные константы. например «B1», «B101» и т. д., @Duncan C


2

Arduino создал двоичные числа: B1, B101, B00111 и т. д.

Это описано на справочной странице "Целые константы".
> "B1" определен в "binary.h" .

Они не должны были этого делать. Ни один инженер-программист C++ не считает это хорошим дополнением. Язык C++ прекрасно подходит для создания двоичных значений: 0b1, 0b101, 0b00111 и т. д.

Это не ваша вина, вы можете винить Arduino. По этой причине вам не следует никогда создавать переменные с именами: B1, B101, B00111 и т. д.

,

Это похоже на источник ошибки в одной строке `int B1=6; Хороший призыв. (проголосовало), @Duncan C