BlackHacker_YT
@BlackHacker_YT
Хочу сменить никнейм :/

Как управлять RBG светодиодом через монитор порта на Arduino?

Я хочу, чтобы допустим при вводе R 255 в COM-порт шел сигнал на пин и загорался красный светодиод, или пишу G 150, а затем B 200 и получался типа темно-голубой цвет, или например пишу R 0, затем G 0, и B 0, и тогда свтодиод гаснет.
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Вот похожую программу как-то писал. Делает почти то что вам надо.
Код максимально прост и понятен.
int red_pin = 11;
int green_pin = 10;
int blue_pin = 9;
int common_pin = A0;
int incoming_data = 0;

void setup() {
  pinMode(red_pin, OUTPUT);
  pinMode(green_pin, OUTPUT);
  pinMode(blue_pin, OUTPUT);
  pinMode(common_pin, OUTPUT);
  digitalWrite(red_pin, HIGH);
  digitalWrite(green_pin, HIGH);
  digitalWrite(blue_pin, HIGH);
  digitalWrite(common_pin, HIGH);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    incoming_data = Serial.read();
  };
 
  if ((incoming_data & B00000010) != 0) {
    digitalWrite(red_pin, LOW);
  } else {
    digitalWrite(red_pin, HIGH);
  };

  if ((incoming_data & B00000100) != 0) {
    digitalWrite(green_pin, LOW);
  } else {
    digitalWrite(green_pin, HIGH);
  };

  if ((incoming_data & B00001000) != 0) {
    digitalWrite(blue_pin, LOW);
  } else {
    digitalWrite(blue_pin, HIGH);
  };

  if ((incoming_data & B00000001) != 0) {
    digitalWrite(common_pin, LOW);
  } else {
    digitalWrite(common_pin, HIGH);
  }
}

Единственное отличие - зажигаемые каналы определяются младшими битами вводимого числа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы