#1 2017-06-08 00:20:57

blekhs
Учасник
Зареєстрований: 2017-06-08
Повідомлень: 3

прошу помощи новичку!!!

ПОЖАЛУЙСТА помогите с примером кода

есть код

int ledPin = 13;

int pwm = 10;

bool state = 0;

int gol = true;

 

void setup()

{              

  Serial.begin(9600);

  Serial.println("HELLO WORLD!!!");

  pinMode (ledPin, OUTPUT);

  pinMode (pwm,OUTPUT);

}

void loop(){

  while (Serial.available() > 0)

  {

    char val = Serial.read();

    if (val == '1') state = !state;

    if(state)

    {

      Serial.println("ON");

      digitalWrite(ledPin, HIGH);

      gol=false;

    }

    else

    {

      Serial.println("OFF");

      digitalWrite(ledPin, LOW);

      gol=true;

    }

if (gol== true)

    {

      for(int i=0;i<=255;i++){

      analogWrite(pwm,i);

      delay(10);

      }

        for(int i=255;i>=0;i--){

        analogWrite(pwm,i);

        delay(10);

        }

 

      }

 

   }

}

мне нужно чтобы циклы "for" повторялись до тех пор пока на измениться переменная "gol".

а в данном случаи циклы "for" выполняется 1 раз

если ставить оператор “while “ то циклы выполняются без конца и нет возможности выхода из цикла!!!
простыми словами!!!
когда нажимаешь кнопку 1 то загораеться лед на пину 13

когда нажимаешь ещё раз конпку 1 то пин 13 тужнет и начинает плавно моргать светодиод на пину pwm 10

у меня с оператором if  pwm плавно моргнёт 1 раз

а с оператором while моргает Бесконечно  и не останавливаеться при помощи кнопки1!!!

мне надо чтобы после того когда пин 13 погаснет начинал плавно моргать pwm и после того как я нажму кнопку 1 загорался пин 13 и перестовал моргать pwm!

Неактивний

#2 2017-06-08 09:25:44

blekhs
Учасник
Зареєстрований: 2017-06-08
Повідомлень: 3

Re: прошу помощи новичку!!!

Вячеслав Азаров пише:

Вы со скобками напутали. Бессонница!

в каком месте?
да была!! просто не могу разобраться с кодом!!!  sad

Остання редакція blekhs (2017-06-08 09:34:04)

Неактивний

#3 2017-06-08 10:22:54

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: прошу помощи новичку!!!

нагрузите Вячеслава работой )

blekhs. если собраетесь что то делать, Вам прийдется с таким вещами самому разбиратся
ну или время Вячеслава проплатите )
и пользуйтесь notepad++. редактор  в ардуино действительно плохой.

могог потому что бывает в коде с 5к строк потеряеш скобку и только откат может спасти ) успехов )

int 	ledPin = 13;
int 	pwm = 10;
bool 	state = 0;
int 	gol = true;


void setup()

{              
	Serial.begin(9600);
	Serial.println("HELLO WORLD!!!");
	pinMode (ledPin, OUTPUT);
	pinMode (pwm,OUTPUT);
}

void loop(){
	while (Serial.available() > 0)
	{
			char val = Serial.read();
			if (val == '1') state = !state;
			if(state)
			{
					Serial.println("ON");
					digitalWrite(ledPin, HIGH);
					gol=false;
			}
			else
			{
					Serial.println("OFF");
					digitalWrite(ledPin, LOW);
					gol=true;
			}
	} // add 			
			if (gol== true)
			{
					for(int i=0;i<=255;i++){
							analogWrite(pwm,i);
							delay(10);
						}
					for(int i=255;i>=0;i--){
							analogWrite(pwm,i);
							delay(10);
						}
			}
	// del }
}

Неактивний

#4 2017-06-08 11:06:42

blekhs
Учасник
Зареєстрований: 2017-06-08
Повідомлень: 3

Re: прошу помощи новичку!!!

NoName пише:

нагрузите Вячеслава работой )

blekhs. если собраетесь что то делать, Вам прийдется с таким вещами самому разбиратся
ну или время Вячеслава проплатите )
и пользуйтесь notepad++. редактор  в ардуино действительно плохой.

могог потому что бывает в коде с 5к строк потеряеш скобку и только откат может спасти ) успехов )

int 	ledPin = 13;
int 	pwm = 10;
bool 	state = 0;
int 	gol = true;


void setup()

{              
	Serial.begin(9600);
	Serial.println("HELLO WORLD!!!");
	pinMode (ledPin, OUTPUT);
	pinMode (pwm,OUTPUT);
}

void loop(){
	while (Serial.available() > 0)
	{
			char val = Serial.read();
			if (val == '1') state = !state;
			if(state)
			{
					Serial.println("ON");
					digitalWrite(ledPin, HIGH);
					gol=false;
			}
			else
			{
					Serial.println("OFF");
					digitalWrite(ledPin, LOW);
					gol=true;
			}
	} // add 			
			if (gol== true)
			{
					for(int i=0;i<=255;i++){
							analogWrite(pwm,i);
							delay(10);
						}
					for(int i=255;i>=0;i--){
							analogWrite(pwm,i);
							delay(10);
						}
			}
	// del }
}

спасибо!!!!

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму