Помогите исправить ошибку!

maodzi87
maodzi87 аватар
Offline
Зарегистрирован: 18.11.2012



int servoPin = 2;
int minPulse = 600;
int maxPulse = 2400;
int turnRate = 1;
int refreshTime = 20;

int SW1 = 7;
int SW2 = 6;

int centerServo;
int pulseWidth;
long lastPuls = 0;

void setup()
{
  pinMode(servoPin, OUTPUT);
  pinMode(SW1, INPUT);
  digitalWrite(SW1,HIGH);
  pinMode(SW2,INPUT);
  digitalWrite(SW2,HIGH);
  centerServo = maxPulse - ((maxPulse - minPulse)/2);
  pulseWidth = centerServo;
}

void loop()
{
  if(!digitalRead(SW1)||!digitalRead(SW2))
  {
    if(!digitalRead(SW1)) {pulseWidth = pulseWidth - turnRate;}
    if(!digitalRead(SW2)) {pulseWidth = pulseWidth + turnRate;}
    
    if(puseWidth>maxPulse) {pulseWidth = maxPulse;}
    if(puseWidth<minPulse) {pulseWidth = minPulse;}
    delay(2);
  }
  
  if (millis() - lastPulse>=refreshTime)
  {
    digitalWrite(servoPin, HIGH);
    delayMicroseconds(pulseWidth);
    digitalWrite(servoPin, LOW);
    lastPulse = millis();
  }
}
    
    Во время проверки перед компиляцией на 32ю строчку указывает как ошибка- ПОЧЕМУ???

Помогите пожалуйста разобраться !!

Заранее благодарен!

 

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

непарвильно имя переменной написано

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Что непонятного в сообщении компилятора?

sketch_jan13a:32: error: 'puseWidth' was not declared in this scope
sketch_jan13a:33: error: 'puseWidth' was not declared in this scope
sketch_jan13a:37: error: 'lastPulse' was not declared in this scope

ошибка: 'бла-бла' не декларирован в этой области. Что означает, что такой переменной нет.

 

maodzi87
maodzi87 аватар
Offline
Зарегистрирован: 18.11.2012

Тогда как это можно объяснить ?? Описание скатывал с книги по ардуине!!

Клапауций
Offline
Зарегистрирован: 10.02.2013

видимо, pulseWidth ?

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013

в книгах бывают очепятки, как у клапацуя :)

у вас puseWidth, а надо pulseWidth  в 32 и 33 строке

 

maodzi87
maodzi87 аватар
Offline
Зарегистрирован: 18.11.2012

все равно на те же строки указывает..((

Michal
Michal аватар
Offline
Зарегистрирован: 26.04.2013


int servoPin = 2;
int minPulse = 600;
int maxPulse = 2400;
int turnRate = 1;
int refreshTime = 20;

int SW1 = 7;
int SW2 = 6;

int centerServo;
int pulseWidth;
long lastPulse = 0;

void setup()
{
  pinMode(servoPin, OUTPUT);
  pinMode(SW1, INPUT);
  digitalWrite(SW1,HIGH);
  pinMode(SW2,INPUT);
  digitalWrite(SW2,HIGH);
  centerServo = maxPulse - ((maxPulse - minPulse)/2);
  pulseWidth = centerServo;
}

void loop()
{
  if(!digitalRead(SW1)||!digitalRead(SW2))
  {
    if(!digitalRead(SW1)) {pulseWidth = pulseWidth - turnRate;}
    if(!digitalRead(SW2)) {pulseWidth = pulseWidth + turnRate;}
    
    if(pulseWidth>maxPulse) {pulseWidth = maxPulse;}
    if(pulseWidth<minPulse) {pulseWidth = minPulse;}
    delay(2);
  }
  
  if (millis() - lastPulse>=refreshTime)
  {
    digitalWrite(servoPin, HIGH);
    delayMicroseconds(pulseWidth);
    digitalWrite(servoPin, LOW);
    lastPulse = millis();
  }
}
    
 

капец вы можете свою программу на опечатки проверить...

вот не ругается на это

maodzi87
maodzi87 аватар
Offline
Зарегистрирован: 18.11.2012

Спасибо огромное!

Клапауций
Offline
Зарегистрирован: 10.02.2013

Michal пишет:

в книгах бывают очепятки, как у клапацуя :)

у вас puseWidth, а надо pulseWidth  в 32 и 33 строке

то я отвлёкся на попытку перевода в хуглетранслейт - думал матюкнётся типа "бешеных кисок".