скетч

Fredi
Offline
Зарегистрирован: 06.06.2016

Всем привет, у меня возникла проблема пири компилирование, у меня Windows 7 программа Arduino 1.0.-r2 написал программу:

int ledPin = 13;

void setup()

{
  //Creat Serial Object
  Serial.begin(9600);
 
  pinMode(ledPin, OUTPUT);
 }

void loop()
{
  //Have the arduino wait to receive input
  while (Serial.read() == 0)
 
  //Read the Input
  int val = Serial.read() - '0';
 
  if (val == 1)
  {
    Serial.println("Led is On");
    digitalWrite(ledPin, HIGH);
  }
  else if (val == 0)
 
    Serial.println("Led is Off");
    digitalWrite(ledPin, LOW);
  }
  else
  {
    Serial.println("Invalid!");
  }
 
}

выходит ошибка 'val' was not declared in this scope и выделяет   if (val == 1) помогите пожалуйста

 

 

 

 

 

T.Rook
Offline
Зарегистрирован: 05.03.2016

1. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii

2. после loop определите  int val=0;

3. ой шото у Вас с if - else-ами напутано...

Fredi
Offline
Зарегистрирован: 06.06.2016

Извините, а по точнее нельзя, и спасибо за первый пункт буду знать  

T.Rook
Offline
Зарегистрирован: 05.03.2016

Что именно по точнее?

Код с номерами строк в студию! :)

Fredi
Offline
Зарегистрирован: 06.06.2016

1 и 2

T.Rook
Offline
Зарегистрирован: 05.03.2016

1 ОБЯЗАТЕЛЬНО для прочтения - как вставлять код, что бы Вам могли нормально помочь.

2. сразу после

loop{

вставьте

int val=0;

дабы val была в зоне видимости всего loop, а не только while

Fredi
Offline
Зарегистрирован: 06.06.2016

спс

Fredi
Offline
Зарегистрирован: 06.06.2016

извините не 1 и 2, а 3 и 2

Fredi
Offline
Зарегистрирован: 06.06.2016
int ledPin = 13;

void setup()

{
  //Creat Serial Object
  Serial.begin(9600);
  
  pinMode(ledPin, OUTPUT);
 }

void loop()
{
  //Have the arduino wait to receive input
  while (Serial.read() == 0)
  
  //Read the Input
  int val = Serial.read() - '0';

  if (val == 1)
  {
    Serial.println("Led is On");
    digitalWrite(ledPin, HIGH);
  }
  else if (val == 0)
  
    Serial.println("Led is Off");
    digitalWrite(ledPin, LOW);
  }
  else
  {
    Serial.println("Invalid!");
  }
  
}
  

 

T.Rook
Offline
Зарегистрирован: 05.03.2016

2 - объяснил. 14 строкой вставьте int val=0;

3. исправьте п.2 и сразу увидите п.3 :)

Alipapa
Offline
Зарегистрирован: 26.05.2016
int val = Serial.read() - '0';

Здесь вы объявляете val как int, почему вы в этом случае ноль в кавычки берете?

T.Rook
Offline
Зарегистрирован: 05.03.2016

Alipapa пишет:

int val = Serial.read() - '0';

Здесь вы объявляете val как int, почему вы в этом случае ноль в кавычки берете?

не торопите ТС. У него кроме этого хватет ошибок:)

Пусть хоть дойдет до этапа компиляции

Fredi
Offline
Зарегистрирован: 06.06.2016

введите в инете видео уроки по arduino. Serial и  processing (6-я серия, ч1) сразу все поймете

Fredi
Offline
Зарегистрирован: 06.06.2016

вы тут?

T.Rook
Offline
Зарегистрирован: 05.03.2016

Отличный вопрос! а Вы уже догадались про "  while (Serial.read()" ?

Fredi
Offline
Зарегистрирован: 06.06.2016

с этим скетчем столько проблем, нет

Fredi
Offline
Зарегистрирован: 06.06.2016

кстати ктонибудь знает как называеться этот скетч

T.Rook
Offline
Зарегистрирован: 05.03.2016

Fredi пишет:

с этим скетчем столько проблем, нет

Эх , внимательно читаем :

http://arduino.ru/Reference/Serial/Read

http://arduino.ru/Reference/Serial/Available

T.Rook
Offline
Зарегистрирован: 05.03.2016

Fredi пишет:

кстати ктонибудь знает как называеться этот скетч

Он же Ваш, Вы и называйте

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Fredi пишет:

кстати ктонибудь знает как называеться этот скетч

Вы!