Плавная подача dc напряжения
- Войдите на сайт для отправки комментариев
Чт, 31/10/2013 - 13:06
Добрый день. Пытаюсь собрать устройство плавной подачи напряжения на arduino с использованием шим выхода + возможность регулировки потенциометром. Не удается сделать плавный прирост до значения потенциометра. Происходит резкое включение. Подскажите в чем ошибка?
Вот код
int brightness = 0;
int fadeAmount = 1;
int pin = A5;
int value;
void setup() {
delay (3000);
pinMode(9, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(brightness);
analogWrite(9, brightness);
value = analogRead(pin);
value /=4;
brightness = brightness + fadeAmount;
if (brightness = value) {
fadeAmount = 0 ;
}
}
Задержку в loop добавьте.
int brightness = 0; int fadeAmount = 1; int pin = A5; int value; int pass; void setup() { delay (3000); pinMode(9, OUTPUT); Serial.begin(9600); } void loop() { Serial.println(brightness); analogWrite(9, brightness); value = analogRead(pin); value /=4; brightness = brightness + fadeAmount; if (brightness = value) { fadeAmount = 0 ; } delay(50); }не помогло, плавного нарастания все равно нет
Почитайте об операторах = и ==. После этого приглядитесь к строке 21.
step962,Спасибо за помощь!
Значение растет до значения потенциометра и остонавливается. Как теперь добавить прерывание, чтобы уже после начала вращения потенциометра , управление переходило на него. Вот код
int brightness = 0; int fadeAmount = 1; int pin = A2; int value; byte intPin = 0; byte NPNpin = 9; void setup() { delay (3000); attachInterrupt(0, resist, LOW); pinMode(NPNpin, OUTPUT); Serial.begin(9600); } void resist() { value = analogRead(pin); value /=4; analogWrite(NPNpin, value); delay(50); } void loop() { Serial.println(brightness); analogWrite(NPNpin, brightness); value = analogRead(pin); value /=4; brightness = brightness + fadeAmount; if (brightness == value) { fadeAmount = 0 ; } delay(50); }Но так управление сразу переходит к потенциометру.