Помогите новичку разобраться с Arduino

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

С Arduino работаю первый раз. До этого был опыт только на Pascal :D

Вообщем, пытаюсь просто заставить сервак крутиться вперед-назад. Нашел небольшой гайд (http://robocraft.ru/files/books/arduino_notebook_rus_v1-1.pdf) (Этот кусок кода есть в этой книжке на 38 странице, его я и переписал). Вот код:

#include <Servo.h>

int servoPin = 3;
int myAngle;
int PulseWidth;
void setup() {
  // put your setup code here, to run once:
  pinmode(ServoPin, OUTPUT);
}

void servoPulse(int ServoPin, int myAngle)
{
  pulseWidth = (myAngle * 10) +600;
  digitalWrite(ServoPin,HIGH);
  delayMicroseconds(pulseWidth);
  digitalWrite(ServoPin, LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
  for (myAngle = 10; myAngle<=170; myAngle++)
  {
    servoPulse(ServoPin,myAngle);
    delay(20);  
  }
  for (myAngle=170; myAngle>=10; myAngle--)
  {
    servoPulse(ServoPin, myAngle);
    delay(20);
  }
}

При запуске ругается вообще на всю программу, чуть ли не на каждую строку.

C:\Users\1\Documents\Arduino\sketch_jan25c\sketch_jan25c.ino: In function 'void setup()':

sketch_jan25c:8: error: 'ServoPin' was not declared in this scope

   pinmode(ServoPin, OUTPUT);

           ^

sketch_jan25c:8: error: 'pinmode' was not declared in this scope

   pinmode(ServoPin, OUTPUT);

                           ^

C:\Users\1\Documents\Arduino\sketch_jan25c\sketch_jan25c.ino: In function 'void servoPulse(int, int)':

sketch_jan25c:13: error: 'pulseWidth' was not declared in this scope

   pulseWidth = (myAngle * 10) +600;

   ^

C:\Users\1\Documents\Arduino\sketch_jan25c\sketch_jan25c.ino: In function 'void loop()':

sketch_jan25c:23: error: 'ServoPin' was not declared in this scope

     servoPulse(ServoPin,myAngle);

                ^

sketch_jan25c:26: error: 'myangle' was not declared in this scope

   for (myAngle=170; myangle>=10; myAngle--)

                     ^

sketch_jan25c:28: error: 'ServoPin' was not declared in this scope

     servoPulse(ServoPin, myAngle);

                ^

exit status 1
'ServoPin' was not declared in this scope

Неверная библиотека найдена в C:\Users\1\Documents\Arduino\libraries\Blink: C:\Users\1\Documents\Arduino\libraries\Blink Неверная библиотека найдена в C:\Users\1\Documents\Arduino\libraries\Blink: C:\Users\1\Documents\Arduino\libraries\Blink

Как я понял, ему не хватает каких-то библиотек? Это моя единственная догадка. Вообщем, помогите нубу)))

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Еду просто завтра на выставку, осталось уже буквально 12 часов до начала, а у меня только робот собран, а прога вообще не написана. 

К слову, это что-то вроде робота-паука (гексапод на 3 сервоприводах)

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

error: 'ServoPin'was not declared in this scope - означает не объявлена константа или переменная ServoPin. Надо где-то в начале написать:

#define ServoPin 5
или
int ServoPin=3;

Значение указать твоё.

По поводу других ошибок: в языке различаются pinmode и pinMode, myangle и myAngle.

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Andy пишет:

По поводу других ошибок: в языке различаются pinmode и pinMode, myangle и myAngle.

О, вот за это спасибо, не знал.

 

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Andy пишет:

error: 'ServoPin'was not declared in this scope - означает не объявлена константа или переменная ServoPin. Надо где-то в начале написать:

int ServoPin=3;

Так ведь у меня это прописано в самом начале

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Или я может это не в том разделе прописал?

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Ой, кажется разобрался. У меня и правда многие команды с разным регистром прописаны :D

Сейчас исправлю и отпишусь

Andy
Andy аватар
Offline
Зарегистрирован: 01.01.2016

"Так ведь у меня это прописано в самом начале" - да, не заметил, та же самая ошибка, ServoPin и servoPin это разные переменные.

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Ахахахах, господи, и правда. Поправил везде регистр и теперь все работает без ошибок... Сколько же я мучался XD

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

R0MaNbI4 пишет:

Еду просто завтра на выставку, осталось уже буквально 12 часов до начала, а у меня только робот собран, а прога вообще не написана. 

К слову, это что-то вроде робота-паука (гексапод на 3 сервоприводах)

робот будет в разделе "Лепим за 12-ть часов выставочные образцы"?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

servoPin и  ServoPin - это разные вещи.......

рulseWidth и PulseWidth  - это разные вещи.......

pinмode и   pinMode тоже разные. 
А pinмode- это вообще переменная

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Ага, понял уже...

R0MaNbI4
Offline
Зарегистрирован: 25.01.2016

Клапауций 322 пишет:

R0MaNbI4 пишет:

Еду просто завтра на выставку, осталось уже буквально 12 часов до начала, а у меня только робот собран, а прога вообще не написана. 

К слову, это что-то вроде робота-паука (гексапод на 3 сервоприводах)

робот будет в разделе "Лепим за 12-ть часов выставочные образцы"?

XD