Слизал чужой скетч, поменял только номера портов и не работает теперь, проблема такая впервые, может кто найдёт ошибку?

evg38
Offline
Зарегистрирован: 12.06.2019

int led1 = 11;
int led2 = 10;
int led3 = 9;

//int buttonPin = 6;

int val=0, stope=1;
long previousMillis = 0;
int buttonState = 0;
long interval = 300;

void setup() {
Serial.begin(9600);
   delay(2);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);

//pinMode (buttonPin, INPUT);
digitalWrite(6, LOW);
attachInterrupt(0, buttonPin, FALLING);
while(!Serial);
}

void one()
{
  while(stope==1)
  {
  Serial.println(val);
  digitalWrite(led1, HIGH);
  digitalWrite(led2, LOW);
  digitalWrite(led3, LOW);
  delay(300);
  digitalWrite(led1, LOW);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  delay(300);
  if(Serial.available() > 0) stope = Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
   digitalWrite(led3, LOW);

}
void two()
{
    while(stope==1)
  {
    digitalWrite(led1, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
        delay(40);   
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led2, LOW);
        delay(40);
              
    if(Serial.available() > 0) stope = Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
   digitalWrite(led3, LOW);
 
  }
void three()
{
     while(stope==1)
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(40);   
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(40);
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
        delay(40);
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
        delay(500);    
        if(Serial.available() > 0) stope = Serial.parseInt();
  }
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
  }
void smooth()
  {
       while(stope==1)
        {
           for(int i=0; i<=255; i++){analogWrite(led1, i);delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led1, k); delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led2, i);delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led2, k); delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led3, k); delay(5);}
              if(Serial.available() > 0) stope = Serial.parseInt();
        }
  }
void smooth2()
  {
       while(stope==1)
        {
           for(int i=0; i<=255; i++){analogWrite(led1, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led2, i);delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led1, k); delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led2, k); delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
           if(Serial.available() > 0) stope = Serial.parseInt();
           for(int i=0; i<=255; i++){analogWrite(led1, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);delay(5);}
        }
  }
void smooth3()
  {
       while(stope==1)
        {
           for(int i=0; i<=255; i++){analogWrite(led1, i);analogWrite(led2, i);delay(5);}
           for(int k=255; k>=0; k--){analogWrite(led2, k);analogWrite(led2, k);delay(5);}
           for(int i=0; i<=255; i++){analogWrite(led3, i);analogWrite(led3, i);delay(5);}

              if(Serial.available() > 0) stope = Serial.parseInt();
        }
  }

void loop() {
if(Serial.available() > 0) val = Serial.parseInt();
switch(val)
{
  case 1:stope=1; one();break;
  case 2:stope=1; two();break;
  case 3:stope=1; three();break;
  case 4:stope=1; smooth();break;
  case 5:stope=1; smooth2();break;
  case 6:stope=1; smooth3();break;
}
}
void buttonPin()
{
  static unsigned long millis_prev;
  if(millis()-1000 > millis_prev)
  {
  stope=1;
  delay(50);
  val++;
    delay(50);
  stope=0;
  Serial.println(val);
    if(val==7)val=0;
  }
  millis_prev = millis();        
}

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

А афтар чо говорит?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Хотя... оно в таком виде не должно проходить дальше компилятора. 

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

int buttonPin может быть только 2 судя по номеру прерывания :)

evg38
Offline
Зарегистрирован: 12.06.2019

а где строчка с номером прерывания? извиняюсь за техническую неграммотность, я просто из деревни

Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015
b707
Offline
Зарегистрирован: 26.05.2017

evg38 пишет:

извиняюсь за техническую неграммотность, я просто из деревни


если нифига не понимаешь - зачем было порты менять?

evg38
Offline
Зарегистрирован: 12.06.2019

Для модуляции ШИМ сигнала и увеличения количества светодиодов. Кстати спасибо Valera19701, я переключил кнопку на второй порт и всё заработало