в целях знакомства с digispark решил начать с простого. с мигалки. эту мигалку я уже делал в NANO и UNO. но вот в дигиспарк это дело отказывается работать.
и так. при включении, устройство как бы выключено, светодиоды LOW
нажать кнопку и режим становится +1 +2 и так далее моргает мигалкой(или мигает моргалкой)
в дигиспарк это не работает и на пин кнопки выходит постоянный HIGH. но почему?
и так. при включении, устройство как бы выключено, светодиоды LOW
нажать кнопку и режим становится +1 +2 и так далее моргает мигалкой(или мигает моргалкой)
в дигиспарк это не работает и на пин кнопки выходит постоянный HIGH. но почему?
мигалка:
int FLASHR_LedPin = 0; // Подключаем красный светодиод мигалки к порту 0
int FLASHB_LedPin = 1; // Подключаем синий светодиод мигалки к порту 1
int BUTPIN = 5; // Подключаем кнопку к выходу 5
int flag = 0; // флаг состояния
int regim = 0; // Переключалка
unsigned long pause1 = 0;
int temp = 1000;
int var = 0;
void setup()
{
pinMode(FLASHR_LedPin, OUTPUT);
pinMode(FLASHB_LedPin, OUTPUT);
}
void loop()
{
if (digitalRead(BUTPIN) == HIGH && flag == 0)
{
regim ++;
temp = 250;
flag = 1;
var = 1;
pause1 = millis();
if (regim > 3) // Если номер режима превышает требуемого
{ // то отсчет начинается с нуля
regim = 0;
}
}
if (digitalRead(BUTPIN) == LOW && flag == 1)
{
flag = 0;
}
// ======= Вполняем задачу при выборе режима =======
// РЕЖИМ 0: Выключено
if (regim == 0)
{
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, LOW);
}
// РЕЖИМ 1:
if (regim == 1)
{
if (millis() - pause1 >= temp)
{
temp = 1000;
pause1 = millis();
switch (var) {
case 1:
digitalWrite(FLASHR_LedPin, HIGH);
digitalWrite(FLASHB_LedPin, LOW);
var = 2;
break;
case 2:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, HIGH);
var = 1;
break;
}
}
}
// РЕЖИМ 2:
if (regim == 2)
{
if (millis() - pause1 >= temp)
{
temp = 250;
pause1 = millis();
switch (var) {
case 1:
digitalWrite(FLASHR_LedPin, HIGH);
digitalWrite(FLASHB_LedPin, LOW);
var = 2;
break;
case 2:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, LOW);
var = 3;
break;
case 3:
digitalWrite(FLASHR_LedPin, HIGH);
digitalWrite(FLASHB_LedPin, LOW);
var = 4;
break;
case 4:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, LOW);
temp = 1000;
var = 5;
break;
case 5:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, HIGH);
temp = 250;
var = 6;
break;
case 6:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, LOW);
var = 7;
break;
case 7:
digitalWrite(FLASHR_LedPin, HIGH);
digitalWrite(FLASHB_LedPin, LOW);
var = 8;
break;
case 8:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, LOW);
temp = 1000;
var = 1;
break;
}
}
}
// РЕЖИМ 3
if (regim == 3)
{
if (millis() - pause1 >= temp)
{
temp = 1000;
pause1 = millis();
switch (var) {
case 1:
digitalWrite(FLASHR_LedPin, HIGH);
digitalWrite(FLASHB_LedPin, LOW);
var = 2;
break;
case 2:
digitalWrite(FLASHR_LedPin, LOW);
digitalWrite(FLASHB_LedPin, HIGH);
var = 1;
break;
}
}
}
}