Задача проста:
По нажатию на кнопку старт, плавно запускаеться двиг. Делает 15 об. Колличество оборотов отслеживаеться д. Холла. Плавно останавливаеться. Потом задерживаеться.
И возвращаеться обратно (пл. пуск, 15 об., плавн. остановка) Время задержки, регулируеться двумя кнопками (+ и -). И выводиться на 1602 экран, через айтуси.
Но почему то, он не работает.
Каждый из компонентов, был проверен в отдельности.
#include // библиотека для ай2си #include // библиотека ЕРОПАМ #include «LiquidCrystal_I2C.h» LiquidCrystal_I2C lcd(0x27,16,2); // адрес шины #define button_start 2 // пин кнопка — пуск #define button_UP 7 // пин кнопка потенциометр + #define button_DOWN 8 // пин кнопка потенциометр — #define holla 3 // пин датчика холла #define DC_UP 5 // пин движка + #define DC_DOWN 6 // пин движка — byte potenc = 30; // начальное значение потенциометра byte i, y = 0, k = 0; // промежуточные переменные long timer = potenc; // время для обратного отсчета (на всякий случай))) byte adres0 = 0; // адрес еропама для сохранения значений byte a=0; // регистр void setup() < Serial.begin(9600); // порт lcd.init(); // экран potenc = EEPROM.read(adres0); // загрузка значений из еропам lcd.clear(); // очистка экрана lcd.setCursor(0,0); // установка курсора lcd.print(«Hello!»); // принт >void loop() < potenciometr(); // вызов метода потенциометр if(digitalRead(button_start)==1 a==0) // нажатие кнопки — старт < a=1; // сдвиг регистра вперед k=0; // обнуление счетчика вращения вала UP(); // вызов метода запуска двигателя вперед (15 оборотов) delay(potenc*100); // задержка в милисекундлах (заданное время * 100 мс) k=0; // обнуление счетчика DOWN(); // вызов метода запуска двигателя назад (15 оборотов) a=0; // сдвиг назад >> void potenciometr() // потенциометр < if(digitalRead(button_UP)==1) // нажатие кнопки + < lcd.clear(); potenc+=1; // увеличение значения на 1 lcd.setCursor(0,0); lcd.print(«Hold = «); lcd.setCursor(12,0); lcd.print(potenc); EEPROM.write(adres0,potenc); // запись значения в еропам >else if(digitalRead(button_DOWN)==1)//нажатие кнопки — < lcd.clear(); potenc-=1; // уменьш знач на 1 lcd.setCursor(0,0); lcd.print(«Hold = «); lcd.setCursor(12,0); lcd.print(potenc); EEPROM.write(adres0,potenc); // запись в еропам >> void oborot() // метод замера кол-ва оборотов вала < y = digitalRead(holla); // читаем датчик холла и при каждом у==1 прибавляем единицу к переменной «к» if(y==1) < k++; >> void UP() // метод движения движка вперед < oborot(); // замеряем кол-во оборотов for(i=0;i<=255;i+=5) //медленный запуск < analogWrite(DC_UP,i); analogWrite(DC_DOWN,0); delay(60); >analogWrite(DC_UP,255); analogWrite(DC_DOWN,0); if(k>=15) // 15 оборотов прошло < for(i=255;i>=0;i-=5) // медленная остановка < analogWrite(DC_UP,i); analogWrite(DC_DOWN,0); delay(60); >analogWrite(DC_UP,0); analogWrite(DC_DOWN,0); > > void DOWN() // метод возврата движка, аналогичен методу вперед < oborot(); for(i=0;i<=255;i+=5) < analogWrite(DC_UP,0); analogWrite(DC_DOWN,i); delay(60); >analogWrite(DC_UP,0); analogWrite(DC_DOWN,255); if(k>=34) < for(i=255;i>=0;i-=5) < analogWrite(DC_UP,0); analogWrite(DC_DOWN,i); delay(60); >analogWrite(DC_UP,0); analogWrite(DC_DOWN,0); > >
- Войдите на сайт для отправки комментариев
Источник: arduino.ru
❓ Обязательно к просмотру начинающему в Arduino IDE (ошибка компилятора)
Arduino для начинающих. Начало работы
Arduino не программируется: что делать при ошибке «not in sync: resp=0x30»
Бывает, что пишешь программы для «Ардуино», загружаешь их в память, и всё прекрасно работает. А потом вдруг они больше не загружаются. А среда разработки при попытке загрузить скетч выдаёт ошибку: «arduino avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x30».
Что такое? Неужели сгорела плата? Не торопитесь отчаиваться: возможно, ещё не всё потеряно. Давайте попробуем разобраться.
Статьи по теме:
- Arduino не программируется: что делать при ошибке «not in sync: resp=0x30»
- Как начать программировать с Arduino
- Как выполнять параллельные задачи (Threads) в программе для Arduino
Инструкция
«Ардуино» не программируется, хотя раньше всё работало. Для такого поведения возможны несколько причин, которые обязательно нужно проверить:
— по какой-то причине произошёл сбой драйвера;
— неправильно выбран COM-порт;
— где-то есть электрическая связь, которой быть не должно (короткое замыкание);
— произошёл сбой загрузчика (bootloader) платы Arduino.
Давайте пройдёмся по всем пунктам этого списка и убедимся, пока не устраним проблему.
Откроем диспетчер устройств Windows через меню Пуск -> Панель управления -> Оборудование и звук -> Диспетчер устройств. Есть более короткий вариант: нажимаем клавишу Windows на клавиатуре и, не отпуская её, нажимаем клавишу Pause. Откроется окно свойств системы, в котором с левой стороны есть ссылка на диспетчер устройств.
Находим и раскрываем в диспетчере раздел Порты (COM и LPT). Если драйвер установлен и работает корректно, никаких оверлейных значков типа вопросительного или восклицательного знака на пиктограмме устройства Ардуино быть не должно. Если такие значки имеются, значит, есть проблемы в работе драйвера. Если Arduino или устройства USB-Serial вообще нет в этом разделе диспетчера, значит драйвер даже не установлен. В любом из этих у случаев драйвер необходимо установить (или переустановить).
В диспетчере устройств выбираем нашу плату Arduino (или неизвестное устройство, которое появляется при подключении платы Arduino к компьютеру), нажмём на него правой кнопкой мыши и в контекстном меню выберем пункт Обновить драйверы. (Update drivers. ).
Выбираем Выполнить поиск на этом компьютере и указываем путь к директории с драйвером для платы. Далее следуем указаниям мастера настройки нового оборудования.
Для оригинальных плат семейства «Ардуино» драйверы имеются в директории среды разработки, в поддиректории drivers. Для «Ардуино»-совместимых плат ищите драйвер в интернете.
Проверим, что правильно указали COM-порт в IDE Arduino. Проверить, какой порт присвоен системой нашей плате «Ардуино» можно в диспетчере устройств Windows. Платы Arduino находятся в разделе «Порты (COM и LPT)» и определяются обычно как устройства «Arduino» или «USB-Serial».
Идём в меню Инструменты -> Порт и убеждаемся, что указан верный порт. Если нет, указываем нужный.
Если плата Arduino лежит на токопроводящей поверхности, есть риск, что где-то имеется короткое замыкание. Это может являться причиной ошибки в работе платы и, в частности, мешать нормальному процессу программирования. Проверьте, что плата находится на изолированной поверхности.
Также к этому же типу причин я бы отнёс подключение несанкционированных проводов к выводам 0 и 1 платы «Ардуино», которые являются портами RX и TX и используются в процессе загрузки скетча в память платы.
Если ничего из перечисленного не помогло, попробуем ещё один вариант: перезапишем загрузчик платы (bootloader).
Загрузчик — это специальная управляющая программа для Arduino, которая исполняется при включении устройства и которая задаёт режим работы платы: либо переходит к исполнению программы из памяти Arduino, либо к процедуре программирования компьютером.
Для реализации этого варианта нам потребуется программатор. Схема подключения программатора к Arduino приведена на рисунке.
После подключения программатора в среде программирования «Ардуино» в меню Инструменты -> Программатор указываем тип нашего программатора. Например, USBasp. Теперь в том же меню Инструменты выбираем пункт Записать Загрузчик. Этот процесс не занимает много времени.
Если операция прошла успешно, IDE сообщит об этом. А плата «Ардуино» радостно замигает светодиодом на 13-ом выводе, т.к. в неё, кроме загрузчика, записан скетч по умолчанию — скетч мигания светодиодом Blink.
Если же после всех проделанных манипуляций плата не оживает, возможно, вы и правда сожгли микросхему. Мои соболезнования.
Полезный совет
Кстати, загрузчики для всех поддерживаемых плат Arduino хранятся в папке c IDE: в поддиректории hardwarearduinoavr и представляют собой бинарные hex-файлы.
Совет полезен?
Статьи по теме:
- Что такое Arduino и что с ним можно сделать
- Как исправить ошибку runtime error
- Как устранить ошибку при инициализации
Добавить комментарий к статье
Похожие советы
- Как программировать микросхему
- Как хранить данные в Arduino
- Как оживить плеер
- Как начать обучать ребёнка Arduino
- Как создать виртуальный com порт
- Какие существуют IDE для работы с Arduino
- Как посмотреть post запрос
- Как попасть в кардиологический центр
- Как устроиться на службу в ФСКН России
- Что означает ошибка: память не может быть read
- USB-программатор (AVR): описание, назначение
- Как запустить игру с параметром debug
- Как распаковать папку
- Как находить периметр ромба
- Как завести авто без ключа
- Почему нет связи с сервером
- Почему восточным мужчинам нравятся русские женщины
- Как играть в очко
- Как посмотреть мой фото-альбом
- Как нарисовать лапы
- Как перевести ватт на киловатт
- Как делить число на дробь
- Чему равен 1 000 000 световых лет
- Как перевести секунды в часы
Новые советы от КакПросто
Рекомендованная статья
Как зарядить смартфон быстрее
Несмотря на то, что современные смартфоны являются чудом инженерной мысли и итогом технического прогресса, слабые.
Источник: www.kakprosto.ru
Arduino: что делать при ошибке «not in sync: resp=0x30»?
Давайте разбираться.
Инструкция по поиску причины ошибки Arduino «not in sync: resp=0x30»
Ардуино не программируется, хотя раньше всё работало. Попытка загрузить скетч в память заканчивается вот таким сообщением IDE: «not in sync: resp=0x30».
Для такого поведения возможны несколько причин:
- по какой-то причине произошёл сбой драйвера;
- неправильно выбран COM-порт;
- где-то есть электрическая связь, которой быть не должно (короткое замыкание);
- произошёл сбой загрузчика (bootloader) платы Arduino.
Давайте пройдёмся по всем пунктам этого списка, пока не устраним проблему.
1 Причина 1 Сбой драйвера
Откроем диспетчер устройств Windows через меню Пуск Панель управления Оборудование и звук Диспетчер устройств. Есть более короткий вариант: нажимаем клавишу Windows на клавиатуре и, не отпуская её, нажимаем клавишу Pause. Откроется окно свойств системы, в котором с левой стороны есть ссылка на диспетчер устройств.
Находим и раскрываем в диспетчере раздел Порты (COM и LPT). Если драйвер установлен и работает корректно, никаких оверлейных значков типа вопросительного или восклицательного знака на пиктограмме устройства Ардуино быть не должно. Если такие значки имеются, значит, есть проблемы в работе драйвера. Если Arduino или устройства USB-Serial вообще нет в этом разделе диспетчера, значит драйвер даже не установлен. В любом из этих случаев драйвер необходимо установить (или переустановить).
В диспетчере устройств выбираем нашу плату Arduino (или неизвестное устройство, которое появляется при подключении платы Arduino к компьютеру), нажмём на него правой кнопкой мыши и в контекстном меню выберем пункт Обновить драйверы… (Update drivers…).
Выбираем Выполнить поиск на этом компьютере и указываем путь к директории с драйвером для платы. Далее следуем указаниям мастера настройки нового оборудования.
Для оригинальных плат семейства Ардуино драйверы имеются в директории среды разработки, в поддиректории drivers. Для Ардуино-совместимых плат ищите драйвер в интернете.
2 Причина 2 Неверно выбран COM-порт
Проверим, что правильно указали COM-порт в IDE Arduino. Проверить, какой порт присвоен системой нашей плате Ардуино можно в диспетчере устройств Windows. Платы Arduino находятся в разделе Порты (COM и LPT) и определяются обычно как устройства Arduino или USB-Serial.
В среде разработки Arduino идём в меню Инструменты Порт и убеждаемся, что указан верный порт. Если нет, указываем нужный.
3 Причина 3 Замыкание или несанкционированное соединение
Если плата Arduino лежит на токопроводящей поверхности, есть риск, что где-то имеется короткое замыкание. Это может являться причиной ошибки в работе платы и, в частности, мешать нормальному процессу программирования. Проверьте, что плата находится на изолированной поверхности.
Также к этому типу причин я бы отнёс подключение несанкционированных проводов к выводам 0 и 1 платы Ардуино, которые являются портами RX и TX и используются в процессе загрузки скетча в память платы.
4 Причина 4 Сбой загрузчика
Если ничего из перечисленного не помогло, попробуем ещё один вариант: перезапишем загрузчик платы (bootloader).
Загрузчик – это специальная управляющая программа для Arduino, которая исполняется при включении устройства и которая задаёт режим работы платы: либо переходит к исполнению программы из памяти Arduino, либо к процедуре программирования компьютером. Загрузчики для всех поддерживаемых плат Arduino хранятся в папке c IDE в поддиректории hardwarearduinoavr и представляют собой бинарные hex-файлы.
Для реализации этого варианта нам потребуется программатор. Более подробно работу с программатором мы уже рассматривали, поэтому привожу здесь лишь схему подключения:
После подключения программатора в среде программирования Ардуино в меню Инструменты Программатор указываем тип нашего программатора. Например, USBasp. Теперь в том же меню Инструменты выбираем пункт Записать Загрузчик. Этот процесс не занимает много времени.
Если операция прошла успешно, IDE сообщит об этом. А плата Ардуино радостно замигает светодиодом на 13-ом выводе, т.к. в неё, кроме загрузчика, записан скетч по умолчанию – скетч мигания светодиодом Blink.
Если же после всех проделанных манипуляций плата не оживает, возможно, вы и правда сожгли микросхему. Мои соболезнования.
Источник: soltau.ru