Здравствуйте! Помогите пожалуйста с кодом. Залил в ардуину нано, а он не работает. Код отсюда http://developer.alexanderklimov.ru/arduino/servo.php хочу разобраться, но в тупике ??? Код (C++): int servoPin = 9; // сигнальный провод от серво на порт 9 int val; void setup() { pinMode(servoPin, OUTPUT); Serial.begin(9600); Serial.println("Servo is ready"); } void loop() { // convert number 0 to 9 to corresponding 0-180 degree angle val = Serial.read(); if (val >= '0' && val <= '9') { val = val - '0'; // convert to numerical variable val = val * (180 / 9); // convert number to angle Serial.print("moving servo to "); Serial.print(val, DEC); Serial.println(); // giving the servo time //to rotate to commanded position for (int i = 0; i <= 50; i++) { servoPulse(servoPin, val); } } } // define a servo pulse function void servoPulse(int pin, int angle) { // convert angle to 500-2480 pulse width int pulseWidth = (angle * 11) + 500; digitalWrite(pin, HIGH); // set the level of servo pin as high delayMicroseconds(pulseWidth); // delay microsecond of pulse width digitalWrite(pin, LOW); // set the level of servo pin as low delay(20 - pulseWidth / 1000); } компилится, а не работает. На 9 ноге никакого сигнала. Питание сервы отдельное, все как по схеме. рад буду любому совету. Натура чувствительная сильно не пинайте .
Все работает (в симуляторе). После ввода значения, Ардуина 1-ну секунду шлет пачку импульсов. На мой взгляд - мало. Надо секунд 5-10. Серва не успеет отработать поворот. for (int i = 0; i <= 50; i++) ---> for (int i = 0; i <= 250; i++) Пришлось вынести подпрограмму перед setup()-ом. Иначе выдает ошибку компиляции.
Два вопроса 1-Куда вводить? 2- это как? Пожалуйста, надо бы разжевать, а то не понимаю. Я же новичок в этом. Читаю и заодним пытаюсь на практике закрепить.
1. Главный цикл читает значение, пришедшее в последовательный порт. В случае Ардуины - это USB связь с компом. Если вы используете Arduino IDE - Инструменты - Монитор порта. Отправляйте цифры 0-9, читайте ответы Ардуины и смотрите на серву. 2. Подпрограмму, начинающуюся со строчки void servoPulse(int pin, int angle) разместите перед строчкой void setup() 3. Компилятор, встретив строку типа servoPulse(servoPin, val); часто не знает что с ней делать. Потому что объекта этой строки он еще не видел. И выдает ошибку компиляции. А если он уже видел void servoPulse(int pin, int angle), то знает что это - подпрограмма. Подобное бывает во многих языках. Запоминайте. 4. Я программист такой же как вы, так что с меня тут спросу мало. Моя сфера - схемотехника.
Если Вы задаете такие вопросы то Вам надо читать не блоги неизвестных Эрнестов а ВИКИ Амперки там СПЕЦИАЛЬНО ДЛЯ ВАС все разжевано.ВИКИ Амперки сами найдете?
Большое спасибо за разьяснения. Виновата спешка. Пытался больше прочитать и сразу что то сделать. Видно спешка нужна в одном случаи при ловле блох . Когда копировал видно что то потерял. Повторно сделал и ввел цифру все работает. Ура!!! Кстати кто то должен на Югах уже пузико греть?!
Сам в шоке! Копию с оригиналом не сверял, тупо скопировал второе раз и вставил. Видно потерял что то не влияющее на компиляцию в первом случаи. Хорошо ставит на место такие ситуации, а то сразу и много. Впредь наука, буду внимательнее. Хорошо когда есть люди, которые могут наставить на путь истинный!, Спасибо.
Юга - югами, а я позавчера в солнечном Санкт-Петербурге по 39 рублей за штуку купил несколько веб-камер. Не бог весть какие - 300кпикс., но по 39 р. и с микрофоном. Работают вполне нормально. ЧуднОй однако город.
Какая хорошая штука! Наверное подайдет для моего автопилота, а то моя дрожка завела в тупик - конфликтуют библиотеки servo и SoftwareSerial. Как только включаю myservo.attach, сразу на осциллограмме паразитный сигнал и серва начинает танцевать. Или это лечится другим способом? Пробовал Servo2, выдает ошибку загрузки в Nano. Что скажите, Гуру?
Я писал об этом: http://forum.amperka.ru/threads/Как-подключить-к-arduino-эхолот-humminbird.17693/page-4 Здесь можно обойтись без SoftwareSerial ? Буду очень благодарен, если подскажите, как это сделать.
Немного не понял Эхолот и автопилот в одном устройстве?В чем проблема использования аппаратного Сериала?
Что-то у меня не получается склеить код эхолота с серводвигателем. Без Software выдает ошибку то загрузки, то не компилирует.