Мазмуну:
- 1 -кадам: Баскычтопту зымга сайыңыз
- 2 -кадам: Микро Серво кошуу
- 3 -кадам: Серводо клавиатураны колдонуу үчүн кодду өзгөртүү
Video: Баскычтоп менен Servo Positoning: 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул көрсөтмөдө биз Arduino Uno менен иштеген клавиатура менен микросервону башкара турган долбоор түзөбүз.
Колдонулган материалдар:
Arduino Uno
Breadboard
4x4 баскычтобу
Micro-Servo
1 -кадам: Баскычтопту зымга сайыңыз
Эң биринчи сиз ойлонушуңуз керек, электр рельсин жана жерге туташтыруучу темирди Arduino аркылуу нан тактаңызга зым менен жабуу
- 5V пинди электр рельсине туташтырыңыз (кызыл)
- Жерге туташтыргычты (GND) жерге туташтыруучу темирге (көк) туташтыруу
Эми панелдин күчү бар жана негизделген, биз компоненттерибизди зым менен байланыштыра баштайбыз.
Баскычтопту туташтыруу оңой, бирок клавиатура менен ардуинодогу казыктарды эске алуу керек. Бул биздин кодго көңүл бурганыбызда пайдалуу болот.
Зымдарды колдонууда сол тараптан баштоону унутпаңыз!
- Биринчи пин 13кө жетет
- Экинчи пин 12ге барат
- Үчүнчү пин 11ге барат
- Төртүнчү пин 10го барат
- Бешинчи пин 9га чейин
- Алтынчы пин 8ге
- Жетинчи пин 7ге чейин
- Сегизинчи пин 6га
Баскычтопту туташтырууда, санариптик pwm пинин ачык кармоону унутпаңыз. Бизге микросерво үчүн керек болот
Биз кодду алардан мурун, баскычтоп китепканасын орнотконуңузду текшериңиз. Бул сиздин эскизде, андан кийин эскиз табулатурасында, китепкананы табууга болот. Ансыз баскычтопту колдоно албайсыз.
Эми кодго кайрылып, баскычтоптун иштеп жатканына жана катышылган баалуулуктарды бергенине ишенели
Ыкчам эскертүүлөр: баскычтопту текшерүү үчүн if оператору бар экенине ишениңиз, антпесе ал иштебейт. Ошондой эле кечигүүдөн этият болуңуз, алар баскычтоптон катталган баскычтар менен чаташат
#кошуу
const байт катарлары = 4; // тергич толук болгондуктан төрт катар
const байт мамычалары = 4; // төрт мамыча, жогорудагыдай
char баскычтары [катарлар] [мамылар] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // клавиатуранын сап казыктары
байт мамычаларыP [мамычалар] = {9, 8, 7, 6}; // баскычтоптун мамычасы
Баскычтоп аянты = Баскычтоп (makeKeymap (баскычтар), rowP, мамычаларP, катарлар, мамычалар); // клавиатура түзүү
жараксыз орнотуу () {
Serial.begin (9600); }
void loop () {
char buttonPressed = pad.getKey (); // эгерде (buttonPressed) // клавиатурада кайсы баскыч басылганын көрсөтсөңүз, charти клавиатурадан алыңыз {Serial.println (buttonPressed); }}
2 -кадам: Микро Серво кошуу
Эми серво моторун кошолу. Муну азыркы долбоорубузга кошуу оңой, анткени микро серверде үч зым гана бар.
- Күрөң зым нандын үстүндөгү жерге туташтыруучу темирге барат
- Кызыл күч темир жолуна барат
- Orange Arduino боюнча 3 -пинге барат. Эсиңизде болсун, микро сервердин Arduinoдо PWM пини болушу керек. Бул TIMER2ди колдонгон сервого байланыштуу
Эми микро сервону туура зымдаганыбызга жана ал жылып жатканына ынануу үчүн
#кошуу #кошуу "Servo.h"
const байт катарлары = 4; // тергич толук болгондуктан төрт катар
const байт мамычалары = 4; // төрт тилке, жогорудагыдай
char баскычтары [катарлар] [мамылар] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // клавиатуранын сап казыктары
байт мамычаларыP [мамычалар] = {9, 8, 7, 6}; // баскычтоптун мамычасы
Баскычтоп аянты = Баскычтоп (makeKeymap (баскычтар), rowP, мамычаларP, катарлар, мамычалар); // клавиатура түзүү
Servo currentServo; // сервону көзөмөлдөө үчүн servo объектисин түзүү
// көпчүлүк такталарда он эки servo объект түзүлүшү мүмкүн
int pos = 0; // servo абалын сактоо үчүн өзгөрмө
жараксыз орнотуу () {
Serial.begin (9600); currentServo.attach (3); // серво объектисине пин 9дагы сервону бекитет
}
void loop () {
char buttonPressed = pad.getKey (); // эгерде (buttonPressed) // клавиатурада кайсы баскыч басылганын көрсөтсөңүз, charти клавиатурадан алыңыз {Serial.println (buttonPressed); }
currentServo.write (95);
}
3 -кадам: Серводо клавиатураны колдонуу үчүн кодду өзгөртүү
Белгилей кетчү нерсе, биз кодубузду өзгөртөбүз, ошондо клавиатуранын белгилүү бир баскычын басканда, servo белгилүү бир абалга өтөт. Биринчи кезекте маанилүү нерсе. 0 үчүн servo абалы кызыктай болду. Менде үзгүлтүксүз айлануу сервосу болгондуктан, ал 0гө жакындаганда, серво жаңы эле айлана баштады. Мен киргизген сан, андай болгон жок, мен бара алгандай эле аз болчу. Кандай болбосун, бул жерде менин акыркы кодум:
#кошуу #кошуу
const байт катарлары = 4; // тергич толук болгондуктан төрт катар
const байт мамычалары = 4; // төрт мамыча, жогорудагыдай
char баскычтары [катарлар] [мамылар] = {
{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C '}, {'*',' 0 ','#',' D '}};
байт rowP [rows] = {13, 12, 11, 10}; // клавиатуранын сап казыктары
байт мамычаларыP [мамычалар] = {9, 8, 7, 6}; // баскычтоптун мамычасы
Баскычтар тактасы = Баскычтоп (makeKeymap (баскычтар), rowP, мамычаларP, катарлар, мамылар); // клавиатура түзүү
Servo myServo; //
жараксыз орнотуу () {
Serial.begin (9600); myServo.attach (5); // servo объектиге пин 9дагы сервону тиркейт}
void loop () {
char ачкычы = pad.getKey (); // символун клавиатурадан алуу if (key == '0') {myServo.write (11); Serial.println ("0"); кечиктирүү (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); кечиктирүү (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); кечиктирүү (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); кечиктирүү (15); }
эгер (ачкыч == '4')
{myServo.write (48); Serial.println ("4"); кечиктирүү (15); }
эгер (ачкыч == '5')
{myServo.write (60); Serial.println ("5"); кечиктирүү (15); }
эгер (ачкыч == '6')
{myServo.write (72); Serial.println ("6"); кечиктирүү (15); }
эгер (ачкыч == '7')
{myServo.write (84); Serial.println ("7"); кечиктирүү (15); }
эгер (ачкыч == '8')
{myServo.write (96); Serial.println ("8"); кечиктирүү (15); }
эгер (ачкыч == '9')
{myServo.write (108); Serial.println ("9"); кечиктирүү (15); }
эгер (ачкыч == '*')
{myServo.write (120); Serial.println ("*"); кечиктирүү (15); }
эгер (ачкыч == '#')
{myServo.write (132); Serial.println ("#"); кечиктирүү (15); }
эгер (ачкыч == 'А')
{myServo.write (146); Serial.println ("A"); кечиктирүү (15); }
эгер (ачкыч == 'B')
{myServo.write (158); Serial.println ("B"); кечиктирүү (15); }
эгер (ачкыч == 'С')
{myServo.write (170); Serial.println ("C"); кечиктирүү (15); }
эгер (ачкыч == 'D')
{myServo.write (180); Serial.println ("D"); кечиктирүү (15); }}
Сунушталууда:
Баскычтоп Servo Lock: 5 кадам
Баскычтоп Servo Lock: Салам баарына, жакшы күн өткөрдүңүз деп үмүттөнөбүз. Эгерде үмүттөнбөсөңүз, анда сиз бул окуу куралына жана кээ бир терапиялык музыкага ачык ой жүгүртүү менен артка кайрыла аласыз. Программалоо кыйын болушу мүмкүн. Бактыга жараша, бул окуу куралы эч кандай кыйынчылык туудурбайт, андыктан сиз аны аткара аласыз
Osu! Баскычтоп: 8 кадам (Сүрөттөр менен)
Osu! Баскычтоп: Мен жакында эле ритм оюнун ойной баштадым osu! жана коммерциялык мини клавиатуранын видеосун көргөндөн кийин, мен өзүмдү долбоорлоо кызыктуу долбоор болот деп ойлогом. Ошондон көп өтпөй мен аны үйрөткүчтөргө коюу жакшы болот деп чечтим
Lego 4x4 баскычтоп матрицасы: 8 кадам (сүрөттөр менен)
Lego 4x4 баскычтоп матрицасы: Мен акыркы бир нече жумада үйдө тыгылып жатканымда, акыры башымда айланып жүргөн кээ бир долбоорлорду аягына чейин чыгардым. Мен акыркы бир нече жумада Lego долбоорлорумдун көбүн негиз катары колдонуп келем
4x4 баскычтоп Arduino жана иштетүү менен: 4 кадам (сүрөттөр менен)
4x4 баскычтоп Arduino жана иштетүү менен: ЖК дисплейлерди жактырбайсызбы? Долбоорлоруңузду жагымдуу кылгыңыз келеби? Ооба, бул чечим. Бул Нускамада сиз Ардуинодогу мазмунду көрсөтүү үчүн ЖК экранды колдонуу кыйынчылыктарынан арыла аласыз жана ошондой эле проектиңизди жасай аласыз
CloudX микроконтроллерин колдонуу менен LCD менен баскычтоп: 4 кадам
CloudX микроконтроллерин колдонуу менен ЖК менен клавиатура: Бул долбоор үчүн биз Matrix баскычтобунун маалыматын кабыл алабыз жана андан кийин аны LCDModuleдо көрсөтөбүз