Сервопривод является очень важным элементом при конструировании роботов и радиоуправляемых моделей.
Во втором уроке мы рассмотрим как при помощи Arduino UNO управлять сервоприводом.
Программа очень проста и наглядна. Начинается она с подключения файла. Данный файл содержит все необходимые команды для управления серво, чтобы облегчить нам жизнь и не изобретать велосипед. Далее, мы должны создать обьект servo. Пусть это будет servoMain. Следующая функция будет setup(), в которой мы указываем, что сервопривод подключен к выводу 10 контроллера.
Теперь все готово и мы можем посылать команды для управления серво. В главной функцииloop(), мы даем различные команды для серводвигателя, выдерживая паузы между командами.
8.3.1 Arduino UNO - Serial LCD.docx
«Роботты техника». 5ші деңгей. 12 сабақ.
Сабақтың тақырыбы: Arduino UNO. Serial LCD.
Сабақтың ұзақтығы: 2 сағ.
Arduino UNO. Serial LCD
Өткен сабақта біз LCDэкранның Arduinoға қосылуын қарастырдық.
Қолайсыздығы, 4битті режимді іске қосқан кезде, Arduinoның 7 сыртқа
шығарылған өткізгіші іске қосылады, ал 8битті іске қосылған кезде, тіпті 11
сыртқа шығарылған өткізгіші іске қосылады. LCD қосылған кезде I/O Arduino
сыртқа шығарылған өткізгішінің санын қысқарту үшін тізбекті интерфейсті
Serial LCD деп аталатын LCD әзірленді. I2C арқылы қосылған кезде өткізгіш
саны 4еуге дейін қысқарады.
eBayде Serial LCD бүгінгі таңда орташа 10$ бағасы бойынша сатылуда,
оларды іздеу жолына Serial LCD, I2C LCD, Serial LCD Arduino, UART LCD
және т.б. сұратуларын енгізу арқылы табу айтарлықтай жеңіл. Егер бөлек
сатылатын адаптерлер болса.
Негізгі көпшілікте, бұл, түбегейлі өзгерісті қамтамасыз ететін, теріс жағынан
орнатылған модулімен кеңінен таралған қытайлық 1602, JHD162A және т.б.
модулді LCD. Әдеттегідей, модульдерде I2C интерфейске арналған 8 биттік
шина кеңейткіш түріндегі PCF8574T микросызба пайдаланылады.
Жоғарыдағы суреттен байқалғандай, модульдің барлығы 4 сыртқа
шығарылған өткізгіші бар: GND, VCC, SDA, SCL. SDA (data) желісі Analog In
4 қосылады, ал SCL (clock) Analog In 5ке. Әрине, 5В қуат көзі.
Платада жарықандыруды қосуға арналған джампер, сондайақ кереғарлықты
реттеуге арналған потенциометр орналасқан. Бастапқы код:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include Wire.h
#include LiquidCrystal_I2C.h
LiquidCrystal_I2C lcd(0x27,16,2); // 2 жолға (16х2) 0x27 адресін және
16 таңба дисплейді орнатамыз
int interval = 0;
void setup()
{
lcd.init(); // LCD бастапқы жүктеу
lcd.backlight(); // жарықтандыруды іске қосамыз
lcd.clear(); // дисплейді тазарту
lcd.setCursor(4, 0); // меңзерді 1жолға орнатамыз, 4 таңба
lcd.print("cxem.net"); // жазбаны шығару
lcd.setCursor(1, 1); // меңзерді 2жолға орнатамыз, 1 таңба
lcd.print("count:");
lcd.setCursor(8, 1); // меңзерді 2жолға орнатамыз, 8 таңба
lcd.print(interval);
}
void loop()
{
delay(500);
interval++;
lcd.setCursor(8, 1);
lcd.print(interval);
}
Кодты мен жақсылап түсіндіруге тырыстым, сол себепті, оның жұмысы
туралы сұрақтар туындамауы тиіс. Пайдаланушылық таңбаларды қалыптастыру
Экранда пайдаланушылық таңбаларды шығаруға болады, оларды құру өте
қарапайым. Бір таңбаның көлемі көлденеңінен 5 пиксельді және тігінінен 7
пиксельді құрайды. Таңбаны құру үшін 5х7 тақтайшасын сызу және қажетті
торларды бояу қажет. Оларға 1, ал бостарына 0 қоямыз. Содан соң қосарлы
пішімде жеті жолды қалыптастырамыз. Мысалы, «П» орыс әрпі:
Бірінші жол толықтай боялған, яғни, қосарлы форматты бұл 11111.
Оналтылық пішімге ауыстырамыз және 1F аламыз. Барлық 7 жол үшін осылай.
Екінші және кейінгі барлық жолдар да солай 10001 және 0x11.
Бағдарламаның өзінде таңбаны құру үшін сіздер 7 элементтен тұратын
массивті бастапқы жүктеп аласыздар және оны қосарлы пішім ретінде де,
оналтылық пішім ретінде де жасай аласыздар. LCDге «ДӘНЕКЕРЛЕГІШ» жазбасын шығару үлігісін қарастырайықшы:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "Wire.h"
#include "LiquidCrystal_I2C.h"
uint8_t bukva_P[8] = {0x1F,0x11,0x11,0x11,0x11,0x11,0x11};
uint8_t bukva_Ya[8] = {
B01111,
B10001,
B10001,
B01111,
B00101,
B01001,
B10001
};
uint8_t bukva_L[8] = {0x3,0x7,0x5,0x5,0xD,0x9,0x19};
uint8_t bukva_Mz[8] = {0x10,0x10,0x10,0x1E,0x11,0x11,0x1E};
uint8_t bukva_I[8] = {0x11,0x13,0x13,0x15,0x19,0x19,0x11};
LiquidCrystal_I2C lcd(0x27,16,2); // 2 жолға (16х2) 0x27 адресін және
16 таңба дисплейді орнатамыз
void setup()
{
lcd.init(); // LCD бастапқы жүктеу
lcd.backlight(); // жарықтандыруды іске қосамыз
lcd.clear(); // дисплейді тазарту
lcd.createChar(0, bukva_P); // таңбаны құрып, оны LCD жадына
жазамыз
lcd.createChar(1, bukva_Ya);
lcd.createChar(2, bukva_L);
lcd.createChar(3, bukva_Mz);
lcd.createChar(4, bukva_I);
lcd.home();
lcd.print(0, BYTE); // таңбаны LCD жадында 0 адресі
бойынша көрсетеміз
lcd.print("A");
lcd.print(1, BYTE);
lcd.print(2, BYTE);
lcd.print(3, BYTE);
lcd.print("H"); 41
42
43
44
45
lcd.print(4, BYTE);
lcd.print("K");
}
void loop()
{
}
П, Л, Ь, И таңбаларын біз оналтылық мәнді массивпен тапсырдық. Ал Я
тапсырмасы қосмәнді массивпен тапсырылған LCDге шығару суреті:
Arduino UNO. Управление сервоприводом
Arduino UNO. Управление сервоприводом
Arduino UNO. Управление сервоприводом
Arduino UNO. Управление сервоприводом
Arduino UNO. Управление сервоприводом
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.