Тестер на атмега 328 своими руками

Тестер на атмега 328 своими руками 591

  Автор admin | 23/06/2016 - 20:08 | "На коленках", Arduino, Статьи о робототехнике

Тестер сервоприводов мне понадобился, когда я разрабатывал робота, играющего в Piano Tiles 2 на планшетном компьютере. Можно здесь глянуть на его работу. Механические «пальцы» данного робота приводятся в движения четырьмя сервоприводами. Сервопривод должен работать в узком диапазоне углов вращения (примерно 20-30 градусов) для того, чтобы движения «пальцев» точно синхронизировались с движением плиток по экрану планшета. Для точного подбора крайних значений («палец нажимает на плитку» и «палец поднят вверх»), можно было бы обойтись и подбором величин прямо в программе робота, но проще, быстрее и точнее сделать это с помощью тестера.

Для наглядности, я записал короткое видео с примером работы данного тестера.
Данный тестер состоит всего из трёх основных элементов — китайский Arduino Nano V3.0, переменный резистор, включенный по схеме потенциометра и цифровой 4-х значный дисплей, управляемый с помощью драйвера TM1637 по протоколу I2C. Всё это собрано на беспаечной макетной плате с помощью типовых проводников типа «папа-папа» (male-male).

Схема_1Для начала средний вывод потенциометра соединим с любым аналоговым входом Nano (в моем случае A0), крайние выводы потенциометра к земле (GND) и к питанию 5V. Таким образом у нас получится управляемый делитель напряжения, выдающий на среднем выводе потенциометра аналоговый сигнал от 0 до 5 Вольт, в зависимости от положения движка.

Далее, подключим модуль дисплея TM1637 к питанию, для этого нужно соединить выводы питания (5V и GND) c соответствующими выводами Arduino Nano. Управляющие лапки DIO и CLK можно цеплять на любые выводы Arduino Nano, так как будет использоваться библиотека, в которой протокол I2C реализован программно. В моем случае я соединил лапку DIO с пином D3, а CLK c пином D2.

Типовой разъем сервопривода состоит из трёх контактов, коричневый — земля (GND), красный — питание (5V) и желтый — управление (PWM). Соответственно подцепим контакты питания к одноименным контактам Arduino Nano, а желтый провод подключим к любому пину с ШИМ (PWM), в моем случае это D5. На данный пин будем выводить сигнал широтно-импульсной модуляции, управляющий сервоприводом. Угол поворота сервопривода определяется длительностью положительной части импульса и обычно лежит в пределах от 500 до 2500 микросекунд.

Теперь для проверки собранного Вами девайса, подключите Arduino Nano к компьютеру через разъем USB и прошейте простенькую программу, использующую библиотеки «Servo.h» и «TM1637.h».

#include <Servo.h> #include "TM1637.h" #define CLK 2 //Подключаем пины соответственно лапкам модуля #define DIO 3 TM1637 tm1637(CLK,DIO);// создаем экземпляр класса TM1637 Servo S1; //объявляем экземпляр класса сервопривод byte angle = 90;//переменная, которая будет хранить угол поворота сервы byte old_angle = 91;// int V = 0; void setup() { tm1637.init();//инициализируем дисплей, (хотя что мешало создателям библиотеки инициализировать его в конструкторе TM1637 tm1637(CLK,DIO);?) tm1637.set(BRIGHT_TYPICAL);//яркость дисплея pinMode(A0,INPUT);// объявляем пин А0 как вход, сюда будем подавать аналоговое напряжение с потенциометра pinMode(5,OUTPUT); S1.attach (5); //прикручиваем серву к пину D5 } void loop() { V=analogRead(A0);//читаем напряжение с потенциометра angle = map(V, 0, 1023, 0, 180);//преобразуем в угол if (angle!=old_angle) // если потенциометр крутился, то... { tm1637.display(angle);// ... отображаем значение угла на дисплее S1.write(angle);// ... крутим сервопривод old_angle=angle;//... запоминаем последнее значение угла, чтобы в следующий раз не дергать серву и дисплей, если потенциометр не крутился } }

Если после прошивки на экране отображается какое-либо число от 0 до 180, то значит всё собрано верно. Можно подключать сервопривод и тестировать его.

Стоимость данного тестера:
китайский клон Arduino Nano — от 120 до 200 рублей;
дисплей ТМ1637 — 85-150 рублей;
макетная плата — 100-300 рублей;
резистор — от 10 до 100 рублей;

ИТОГО: 315-715 рублей. А если учесть, что ничего не запаяно и если тестер не нужен, то его можно разобрать, то стоимость вообще падает до нуля. Обычно все эти компоненты уже имеются в арсенале любого микроконтроллерщика (ардуинщика).

Метки 4digit, analogRead, arduino, atmega328, datasheet, i2c, LED, Piano tiles 2, SG90, TM1637, ардуино, библиотека, видео, волгоград, детский клуб, индикатор, китайский, клуб робототехники, микроконтроллер, робопро.рф, робототехника, светодиодный, своими руками, серво, сервопривод, тестер, цифровой, четырехзначный. Закладка постоянная ссылка.


Тестер на атмега 328 своими руками 404


Тестер на атмега 328 своими руками 173


Тестер на атмега 328 своими руками 63


Тестер на атмега 328 своими руками 150


Тестер на атмега 328 своими руками 747


Тестер на атмега 328 своими руками 564


Тестер на атмега 328 своими руками 810


Тестер на атмега 328 своими руками 288


Тестер на атмега 328 своими руками 564


Тестер на атмега 328 своими руками 363


Тестер на атмега 328 своими руками 688


Тестер на атмега 328 своими руками 991


Тестер на атмега 328 своими руками 316


Тестер на атмега 328 своими руками 391


Тестер на атмега 328 своими руками 802


Тестер на атмега 328 своими руками 180


Тестер на атмега 328 своими руками 697


Тестер на атмега 328 своими руками 123


Тестер на атмега 328 своими руками 479


Читать далее:

  • Ванная комната без ванны как сделать
  • Потолок из гипсокартона в один уровень своими руками
  • Подарок на заказ именной
  • Приклады своими руками фото
  • Как сделать из пластилина на ютубе