Controlla il servo con i pulsanti Arduino in tre passaggi_Custom Drive_Industry Insights_Kpower
Casa > Approfondimenti sul settore >Guida personalizzata
SUPPORTO TECNICO

Supporto al prodotto

Controlla il servo con i pulsanti Arduino in tre passaggi

Pubblicato 2026-04-29

Usa una scheda di sviluppo Arduino per controllare l'angolo di rotazione del servo con l'aiuto di un pulsante. Questa è una delle funzioni di base più pratiche nella produzione elettronica. Questo articolo fornisce direttamente una soluzione completa. Utilizzare un pulsante normale. Quando viene premuto, il servo ruota di 90 gradi e quando rilasciato ritorna a 0 gradi. Hai solo bisogno di una scheda di sviluppo Arduino, un servo da 9 g, un pulsante, alcuni cavi Dupont e una breadboard. Secondo lo schema elettrico e il codice riportati di seguito, può essere completato in 30 minuti.

01Hardware e metodi di cablaggio richiesti (operazioni principali)

Elenco hardware richiesto:

Scheda di sviluppo Arduino (qualsiasi modello è accettabile, questo articolo prende come esempio il modello più comune)

Servo SG90 9g (servo a bassa potenza, adatto per entry-level)

Pulsante a sfioramento (4 pin 6x6x5 mm)

Resistore da 10 kΩ (per resistore pull-down)

Breadboard e del filo DuPont

Passaggi di cablaggio (devono essere precisi):

1. Collegare la linea del segnale del servo (solitamente arancione o gialla) al pin 9 di Arduino

2. Collegare il cavo di alimentazione del servo (rosso) al pin 5V

3. Collegare il filo di terra del servo (marrone o nero) al pin GND

按键控制舵机程序_arduino按键控制舵机_arduino舵机控制板

4. Un pin del pulsante è collegato a 5 V e l'altro pin è collegato al pin 2.

5. Collegare un resistore pull-down da 10 kΩ in parallelo tra il pin 2 e GND per garantire che l'ingresso sia BASSO quando non viene premuto.

Un errore comune è che l'omissione del resistore di pull-down causerà un salto irregolare dello stato del pulsante. Un'estremità del resistore è collegata al pin 2 e l'altra estremità è collegata a GND.

02Codice completo (copialo direttamente e usalo)

#includereservoMioservo; //Crea oggetto servo int buttonPin = 2; //Pin connessione pulsante int buttonState = 0; //Stato del pulsante di archiviazione intservoPos = 0; // Angolo attuale del servo void setup() { myServo.attach(9); // Collega la linea del segnale del servo al pin 9 pinMode(buttonPin, INPUT); // Imposta il pin del pulsante come input myServo.write(0); // Inizializza l'angolo del servo a 0 gradi } void loop() { buttonState = digitalRead(buttonPin); // Legge lo stato del pulsante if (buttonState == HIGH) { // Quando viene premuto myServo.write(90); // Il servo ruota con un ritardo di 90 gradi (15); // Attendi che il servo raggiunga la posizione } else { // Quando non viene premuto myServo.write(0); // Il servo ritorna con un ritardo di 0 gradi (15); } }

La logica principale del codice consiste nell'utilizzare digitalRead() per rilevare continuamente il livello del pin 2Una volta premuto il pulsante, cioè quando il pin è nello stato HIGH, il servo esegue l'operazione di scrittura (90).Quando il pulsante viene rilasciato, il servo ritorna all'operazione di scrittura (0).. Attraverso una scrittura strutturata, dividiamo il programma in quattro moduli chiaramente organizzati: inizializzazione, lettura, giudizio ed esecuzione, in modo da poterlo espandere in una modalità di controllo multi-tasto o multi-angolo nelle fasi successive.

03Domande frequenti e risoluzione dei problemi (formato Q/A)

D: Il servo non si muove affatto. Quale potrebbe essere la ragione?

Fonte di alimentazione insufficiente. Il servo deve essere alimentato separatamente. Il servo da 9g può utilizzare direttamente i 5 V di Arduino e il servo più grande deve essere alimentato da un alimentatore esterno.

D: Premi il pulsante una volta e il servo ruoterà una volta. Tornerà a zero una volta rilasciato?

R: C'è un errore logico nel codice. Assicurati di utilizzare la struttura if-else fornita sopra, invece di determinare semplicemente le condizioni dopo aver premuto.

D: Cosa devo fare se la scatola dello sterzo trema o lo sterzo non è corretto?

按键控制舵机程序_arduino舵机控制板_arduino按键控制舵机

1. Controllare se la linea del segnale è allentata. 2. Aggiungi delay(15) dopo write(). 3. Ciò fornirà un tempo di azione sufficiente per il servo.

D: Come cambiarlo per ruotare di 90 gradi premendo una volta e tornare a zero premendo nuovamente?

È necessario aggiungere variabili per registrare lo stato. Ogni volta che viene rilevato che il pulsante viene premuto, il bit flag viene modificato e viene scritto l'angolo corrispondente.

D: I pulsanti rispondono lentamente e talvolta non si verifica alcuna risposta?

A causa del jitter meccanico dei tasti, è possibile aggiungere un ritardo (10) dopo aver rilevato il cambiamento di livello per eliminare il jitter o utilizzare la libreria Bounce2

04Applicazioni estese: dal pulsante singolo al controllo multimodale

Dopo aver imparato il controllo di base con un solo pulsante, puoi facilmente implementare le seguenti funzioni avanzate:

1. Due pulsanti controllano rispettivamente la marcia avanti e la retromarcia.

Pulsante A: premere per andare a 180 gradi, rilasciare per tornare a 0 gradi

Pulsante B: premere per andare a 45 gradi, rilasciare per tornare a 0 gradi

Modifica il codice: aggiungi un secondo pin del pulsante e giudica separatamente

2. Pulsante singolo per scorrere tre angoli

// L'angolo viene accumulato ogni volta che viene premuto, 0→60→120→0 loop int angoli[] = {0, 60, 120}; indice intero = 0; if (buttonState == HIGH && !flag) { // Indice anti-doppio clic = (index+1) % 3; mioServo.write(angoli[indice]); bandiera = vero; }

3. Premere a lungo per ruotare continuamente

Rileva la durata del pulsante e continua ad aumentare l'angolo dopo aver superato i 500 ms fino al rilascio.

Di seguito sono riportati esempi di codice completi con funzioni estese. I principi sono tutti basati sulla logica di scrittura strutturata di questo articolo, ovvero input chiari. Questo input è costituito da stati chiave, seguiti dall'elaborazione, che è il calcolo dell'angolo, e infine dall'output, che viene utilizzato come comando servo.

05Ripeti le idee principali e i suggerimenti di azione

Enfasi sul punto centrale: l'essenza del controllo dei pulsanti Arduino del servo è la trasformazione dei "segnali digitali in segnali PWM". I pulsanti forniscono livelli alto e basso e il servo ruota all'angolo preimpostato in base al valore del livello.Finché il cablaggio è corretto (la resistenza di pull-down non deve essere omessa) e la logica del codice utilizza if-else o una macchina a stati, è possibile ottenere un controllo stabile.

Ecco tre suggerimenti di azioni che puoi intraprendere immediatamente:

1. Stasera costruirò una versione base: sulla base dello schema elettrico e del codice in questo articolo, utilizzerò la breadboard per costruire un circuito completo e assisterò personalmente alla scena del servo che ruota quando viene premuto il pulsante.

2. Esplorare l'esperimento modificando il valore dell'angolo: modificare lo stato di 90 gradi in forme numeriche casuali come 45 gradi, 135 gradi, 180 gradi, ecc., prestare attenzione ai cambiamenti nella posizione dello sterzo causati dall'osservazione, quindi comprendere che l'intervallo dei parametri della funzione write() va da zero a 180 gradi.

3. Aggiungi un secondo pulsante e affidati al codice corrente per copiare il modulo di lettura dei pulsanti per ottenere un prototipo di prodotto con caratteristiche interattive reali che può essere controllato da diversi pulsanti da diverse angolazioni.

Hai già tutte le conoscenze chiave per realizzare da zero servi controllati da pulsanti. Ora apri l'IDE di Arduino, collega l'hardware e verifica tu stesso ogni passaggio.

Tempo di aggiornamento: 29-04-2026

Alimentare il futuro

Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.

Invia una e-mail a Kpower
Invia richiesta
Messaggio WhatsApp
+86 0769 8399 3238
 
kpowerMap