Sommario:

Posizionamento servo con tastiera: 3 passaggi
Posizionamento servo con tastiera: 3 passaggi

Video: Posizionamento servo con tastiera: 3 passaggi

Video: Posizionamento servo con tastiera: 3 passaggi
Video: Arduino Lezione 15 Passaggio a livello con sensore a infrarossi (IR) e Servo 2024, Dicembre
Anonim
Posizionamento servo con tastiera
Posizionamento servo con tastiera

In questo tutorial creeremo un progetto che controllerà un Micro-Servo con una tastiera che lo esegue con un Arduino Uno.

Materiali usati:

Arduino Uno

tagliere

Tastiera 4x4

Micro-Servo

Passaggio 1: cablare la tastiera

Cablare la tastiera
Cablare la tastiera
Cablare la tastiera
Cablare la tastiera

La prima cosa che devi fare è cablare il binario di alimentazione e il binario di messa a terra sulla breadboard dal tuo Arduino

  1. Collegare il pin 5V alla barra di alimentazione (rosso)
  2. Collegare un pin di terra (GND) al binario di messa a terra (blu)

Ora che la breadboard è alimentata ed è collegata a terra, possiamo iniziare a cablare i nostri componenti.

Il cablaggio della tastiera è facile, ma è necessario prendere nota dei pin sulla tastiera e su arduino. Sarà utile quando rivolgiamo la nostra attenzione al nostro codice.

Ricorda di iniziare da sinistra quando usi i cavi!

  • Il primo pin va a 13
  • Il secondo pin va a 12
  • Il terzo pin va a 11
  • Il quarto pin va a 10
  • Quinto pin a 9
  • Sesto Pin a 8
  • Settimo Pin a 7
  • Ottavo Pin a 6

Quando si cabla la tastiera, ricordarsi di tenere aperto un pin digitale pwm. Ci servirà per il micro-servo

Prima di arrivare al codice, assicurati di aver installato la libreria della tastiera. Può essere trovato nel tuo schizzo, quindi nella scheda dello schizzo, includi la libreria. Non sarai in grado di utilizzare la tastiera senza di essa.

Ora passiamo al codice e assicuriamoci che la tastiera funzioni e dia i valori attesi

Note rapide: assicurati di avere l'istruzione if per controllare la tastiera, altrimenti non funzionerà. Fai anche attenzione ai ritardi, faranno confusione con i pulsanti che vengono registrati dalla tastiera

#includere

const byte righe = 4; //quattro righe poiché la tastiera è piena

const byte colonne = 4; //quattro colonne, come sopra

char pulsanti[righe][colonne] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

byte rigaP[righe] = {13, 12, 11, 10}; //pin riga della tastiera

byte colonneP[colonne] = {9, 8, 7, 6}; //pin di colonna della tastiera

Tastierino tastierino = Tastierino(makeKeymap(pulsanti), rigaP, colonneP, righe, colonne); //crea tastiera

void setup(){

Serial.begin(9600); }

ciclo vuoto(){

char buttonPressed = pad.getKey(); //preleva il carattere dalla tastiera if(buttonPressed) //mostra quale pulsante è stato premuto sulla tastiera { Serial.println(buttonPressed); } }

Passaggio 2: aggiungere il micro servo

Aggiungi il Micro Servo
Aggiungi il Micro Servo
Aggiungi il Micro Servo
Aggiungi il Micro Servo

Ora aggiungiamo il servomotore. Questo è davvero facile da aggiungere al nostro progetto attuale poiché il micro server ha solo tre fili.

  • Il filo marrone va al binario di messa a terra sulla breadboard
  • Il rosso va al Power rail
  • Orange va al Pin 3 su Arduino. Ricorda che il micro server deve avere un pin PWM su Arduino. Ciò è dovuto al servo che utilizza TIMER2

Ora assicuriamoci di aver cablato correttamente il micro servo e che si muova

#include #include "Servo.h"

const byte righe = 4; //quattro righe poiché la tastiera è piena

const byte colonne = 4; //quattro colonne, come sopra

char pulsanti[righe][colonne] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

byte rigaP[righe] = {13, 12, 11, 10}; //pin riga della tastiera

byte columnsP[colonne] = {9, 8, 7, 6}; //pin di colonna della tastiera

Tastierino tastierino = Tastierino(makeKeymap(pulsanti), rigaP, colonneP, righe, colonne); //crea tastiera

Servo corrente Servo; // crea un oggetto servo per controllare un servo

// dodici servo oggetti possono essere creati sulla maggior parte delle schede

int posizione = 0; // variabile per memorizzare la posizione del servo

void setup(){

Serial.begin(9600); currentServo.attach(3); // collega il servo sul pin 9 all'oggetto servo

}

ciclo vuoto(){

char buttonPressed = pad.getKey(); //preleva il carattere dalla tastiera if(buttonPressed) //mostra quale pulsante è stato premuto sulla tastiera { Serial.println(buttonPressed); }

currentServo.write(95);

}

Passaggio 3: modifica il codice per utilizzare la tastiera sul servo

Sappi che modificheremo il nostro codice in modo che quando premiamo un particolare pulsante sulla tastiera, il servo si sposta in una posizione particolare. Una cosa importante prima di tutto. La posizione del servo per 0 era strana. Dato che avevo un servo a rotazione continua, ogni volta che si avvicinava a 0, il servo iniziava a girare. Il numero che ho inserito nel codice era il più basso possibile senza che ciò accadesse. Comunque, ecco il mio codice finale:

#include #include

const byte righe = 4; //quattro righe poiché la tastiera è piena

const byte colonne = 4; //quattro colonne, come sopra

char pulsanti[righe][colonne] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

byte rigaP[righe] = {13, 12, 11, 10}; //pin riga della tastiera

byte colonneP[colonne] = {9, 8, 7, 6}; //pin di colonna della tastiera

Tastierino tastierino = Tastierino(makeKeymap(pulsanti), rigaP, colonneP, righe, colonne); //crea tastiera

Servo myServo; //

void setup(){

Serial.begin(9600); myServo.attach(5); // collega il servo sul pin 9 all'oggetto servo }

ciclo vuoto(){

char chiave = pad.getKey(); //ricevo il carattere dalla tastiera if(key == '0') { myServo.write(11); Serial.println("0"); ritardo(15); } if(chiave == '1') { mioServo.write(12); Serial.println("1"); ritardo(15); } if(chiave == '2') { mioServo.write(24); Serial.println("2"); ritardo(15); } if(chiave == '3') { mioServo.write(36); Serial.println("3"); ritardo(15); }

if(chiave == '4')

{ myServo.write(48); Serial.println("4"); ritardo(15); }

if(chiave == '5')

{ myServo.write(60); Serial.println("5"); ritardo(15); }

if(chiave == '6')

{ myServo.write(72); Serial.println("6"); ritardo(15); }

if(chiave == '7')

{ myServo.write(84); Serial.println("7"); ritardo(15); }

if(chiave == '8')

{ myServo.write(96); Serial.println("8"); ritardo(15); }

if(chiave == '9')

{ myServo.write(108); Serial.println("9"); ritardo(15); }

if(chiave == '*')

{ myServo.write(120); Serial.println("*"); ritardo(15); }

if(chiave == '#')

{ myServo.write(132); Serial.println("#"); ritardo(15); }

if(chiave == 'A')

{ myServo.write(146); Serial.println("A"); ritardo(15); }

if(chiave == 'B')

{ myServo.write(158); Serial.println("B"); ritardo(15); }

if(tasto == 'C')

{ myServo.write(170); Serial.println("C"); ritardo(15); }

if(chiave == 'D')

{ myServo.write(180); Serial.println("D"); ritardo(15); } }

Consigliato: