Форум по Роботика
Контролери => Ардуино (Arduino) => Темата е започната от: radiko в Април 28, 2013, 06:16:00 pm
-
Реших да се пробвам и аз с това. Уж лесно но накрая стигнах до никъде Правя някаква грешка и не мога да схвана къде е Моля някой който е по наясно да хвърли едно око на кода:
/*
това би трябвало да е програма за управление на двигател с два бутона
*/
// set pin numbers:
int inkbutton = 2; // бутон за увеличаване
int dekbutton = 3; // бутон за намаляване
int ledPin = 13; // изход за мосфет
int value = 0;
// variables will change:
void setup()
{
// initialize the pushbutton pin as an input:
pinMode(inkbutton, INPUT);
pinMode(dekbutton, INPUT);
}
void loop()
{
// проверка бутон увеличаване
digitalRead(inkbutton);
if (inkbutton = HIGH &&
value < 254)
{
// увеличаване на стойността
++value;
}
// проверка бутон намаляване
digitalRead(dekbutton);
if (dekbutton = HIGH &&
value > 1)
{
// намаляване на стойността
--value;
}
// записване на стойността
analogWrite(ledPin, value);
delay(200);
}
-
Ето ти работещ код:
int inkbutton = 2; // бутон за увеличаване
int dekbutton = 3; // бутон за намаляване
int ledPin = 9; // изход за мосфет
int value = 0;
// variables will change:
void setup()
{
pinMode(inkbutton, INPUT);
pinMode(dekbutton, INPUT);
}
void loop()
{
// проверка бутон увеличаване
if ((digitalRead(inkbutton)) == HIGH && value < 254)
{
// увеличаване на стойността
value++;
}
// проверка бутон намаляване
if ((digitalRead(dekbutton)) == HIGH && value > 0)
{
// намаляване на стойността
value--;
}
// записване на стойността
analogWrite(ledPin, value);
delay(10);
}
За изход към MOSFET-a трябва да използваш един от PWM(pulse-width modulation) пиновете-3,5,6,9,10 и 11(Atmega328P)!!!
-
Мале колко съм тъп, от цялата торба пинове съм се хванал за най дългия. Тоя дето не поддържа PVM.
Благодаря много за помощта.