Мы работаем над проектом Arduino, в котором мы используем различные методы для изменения мощности трех светодиодов, создавая собственную лампу "RGB", и в настоящее время проблема связана с гибкими резисторами. Идея состоит в том, чтобы использовать три гибких резистора для управления каждой лампой. Мы использовали функцию карты без наименьшего и наивысшего значения, делая наше наименьшее число 0 и наивысшее 255. Проблема в том, что наше число сильно колеблется, а круги мерцают, как сумасшедшие. Любые рекомендации?
Мы попытались изменить наши отображенные числа, как максимальные, так и минимальные. Мы также поиграли с кодом, но безуспешно.
#include <LiquidCrystal.h>
int bend1 = A0;
int bend2 = A4;
int bend3 = A5;
int green = 6;
int red = 10;
int blue = 9;
unsigned long previous = 0;
const long interval = 500;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
Serial.begin(9600);
Serial.println("Started");
lcd.begin(16,2);
pinMode(green, OUTPUT);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previous >= interval)
{
previous = currentMillis;
lcd.clear();
}
int value1 = analogRead(bend1);
int value2 = analogRead(bend2);
int value3 = analogRead(bend3);
value1 = map(value1, 510, 910, 0, 255);
value2 = map(value2, 490, 905, 0, 255);
value3 = map(value3, 500, 900, 0, 255);
if(value3 > 20)
{
analogWrite(blue, value3);
}
else
{
analogWrite(blue, 0);
}
if(value2 > 20)
{
analogWrite(red, value3);
}
else
{
analogWrite(red, 0);
}
if(value1 > 20)
{
analogWrite(green, value3);
}
else
{
analogWrite(green, 0);
}
lcd.setCursor(0, 0);
lcd.print("GREEN");
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(12, 0 );
lcd.print("BLUE");
lcd.setCursor(0, 1);
lcd.print(value1);
lcd.setCursor(7, 1);
lcd.print(value2);
lcd.setCursor(12, 1);
lcd.print(value3);
}
Мы должны получить значения 0,0,0, когда все гибкие резисторы плоские, но вместо этого они колеблются от -10 ---> 90 в некоторых случаях. Одной из наших неисправностей могут быть неисправные гибкие резисторы. Но мы думаем, что могут быть скрыты некоторые проблемы с кодом.