Регулирование яркости Светодиода
- Войдите на сайт для отправки комментариев
int KHPUSK = 3;
int KHSTOP = 4;
int L1 = 11;
int POTENC = 0;
int A;
int B;
void setup() {
pinMode (KHPUSK,INPUT);
pinMode (KHSTOP,INPUT);
pinMode (L1,OUTPUT);
pinMode (POTENC, INPUT);
}
void loop() {
A=analogRead(POTENC)/4;
if(digitalRead(KHPUSK)==1 && digitalRead(KHSTOP)==0)
{
analogWrite(L1,A);
}
if(digitalRead(KHSTOP) == 1) digitalWrite(L1,LOW);
}
Ребят подскажите, как сделать что бы при включении светодиода кнопкой можно было регулировать его яркость ? А то у меня получается что только при каждом новом нажатии на кнопку KHPUSK светодиод меняет яркость в зависимости от показаний потенцеомметра. И ещё один маленький вопросик нуба :) Как правильно присваивать в программе имена аналоговым входам, если и цифровые на плате идут с 2 по 13 и аналоговые с 0 по 5 ? Получается 3,4,5 входа пересекаются...
Напрмер я пишу int ABC=5; это значит что ABC это пятый цифровой пин. А как написать что бы ABC был пятый аналоговый пин ?
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
Напрмер я пишу int ABC=5; это значит что ABC это пятый цифровой пин. А как написать что бы ABC был пятый аналоговый пин ?
Посмотреть хотя бы идущие с IDE примеры религия не позволяет?
Ребят подскажите, как сделать что бы при включении светодиода кнопкой можно было регулировать его яркость ? А то у меня получается что только при каждом новом нажатии на кнопку KHPUSK светодиод меняет яркость в зависимости от показаний потенцеомметра.
Объясните, чем то, что Вы хотите, отличается от того, что получилось?
Вам нужно, чтобы на уже включенный светодиод новое нажатие кнопки никак не сказывалось?
потенциометр у него опрашивается в лупе, а вот регулировка яркости находится в if который запускается только при нажатии кнопки, а ему нужно чтобы у него включенный сетодиод регулировал свою яркость
в данный момент не начем проверить, попробуйте, придумал такой костыль)))
int KHPUSK = 3; int KHSTOP = 4; int L1 = 11; int POTENC = 0; int A; int B; void setup() { pinMode (KHPUSK,INPUT); pinMode (KHSTOP,INPUT); pinMode (L1,OUTPUT); pinMode (POTENC, INPUT); } void loop() { //опрос кнопки if(digitalRead(KHPUSK)==1 && digitalRead(KHSTOP)==0) { while(digitalRead(KHSTOP) == 0){ A=analogRead(POTENC)/4; analogWrite(L1,A); if(digitalRead(KHSTOP) == 1) digitalWrite(L1,LOW); } }/**/ unsigned int mill; //------PegLed-------------------------------------- // светодиод с регулятором освещения class Cl_RegLed { protected: const byte inPin; const byte outPin; int led; unsigned int past = 0; public: Cl_RegLed(byte inPin_, byte outPin_): inPin(inPin_), outPin(outPin_) {} void setup() { pinMode (outPin, OUTPUT); OFF(); } void loop() { if (mill - past >= 200) { past = mill; led = analogRead(outPin)/4; } } void ON() { analogWrite(outPin, led); } void OFF() { analogWrite(outPin, 0); } }; //------Cl_Btn---------------------- // класс кнопка class Cl_Btn { protected: const byte pin; void (*Do)(); bool bounce = 0; bool btn = 1, oldBtn; unsigned long past; public: Cl_Btn(byte pin_, void (*Do_)()): pin(pin_), Do(Do_) {} void setup() { pinMode(pin, INPUT_PULLUP); } void loop() { bool newBtn = digitalRead(pin); if (!bounce && newBtn != btn) { bounce = 1; past = mill; } if (bounce && mill - past >= 10) { bounce = 0 ; oldBtn = btn; btn = newBtn; if (!btn && oldBtn) (*Do)(); } } }; //-----------Компановка--------------------------------- Cl_RegLed Led(/*пин резистора*/A0,/*пин светодиода*/11); void DoBtn1() { Led.ON(); } void DoBtn2() { Led.OFF(); } Cl_Btn startBtn(/*пин*/3,/*обработчик*/DoBtn1); Cl_Btn stopBtn(/*пин*/4,/*обработчик*/DoBtn2); //-----main----------------------- int main() { init(); // setup() Led.setup(); startBtn.setup(); stopBtn.setup(); for (;;) { // loop() mill = millis(); Led.loop(); startBtn.loop(); stopBtn.loop(); } return 0; } /*Скетч использует 1554 байт (4%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 37 байт (1%) динамической памяти, оставляя 2011 байт для локальных переменных. Максимум: 2048 байт. */