Controllo di posizione senza PID

Ingredienti:
Arduino UNO
breadboard
3 pulsanti (1 di START, 2 finecorsa min e max)
breakout board L298
motore in cc JGA25-370 con encoder
una striscia di pin femmina con terminali lunghi (4 pin)
qualche filo di rame con quaina di diversi colori
alimentatore a 12 V 1 A

Strumenti:
set di cacciaviti con punta intercambiabile
spelafili o forbici

Prepazione:
Abbiamo sfruttato i quattro pin da A2 a A5 per collegare i pin della breakout board.
Abbiamo lasciato i jumper al loro posto in modo che gli enable dell’L298 sono a livello logico alto.
Da Arduino si gestisce in polling l’attivazione del motore e a interrupt l’arresto.
Il motore viene arrestato prima della quota finale tenendo conto dell’inerzia.
Per calcolare la quota di arresto all’accensione del sistema il motore viene mosso indietro fino a che l’asse controllato non arriva sul finecorsa (simulato da un pulsante).
A interrupt si spegne il motore e si azzera la quota. Dopo un tempo adeguato si va a vedere il valore della posizione e si ricava la quota di prearresto.

Un’alimentatore gratis

Per i nostri robottini possiamo utilizzare un alimentatore recuperato da un vecchio PC. Sono alimentatori molto potenti, dai quali è possibile ottenere tensioni di +5V, -5V, +12V, -12V, +3.3V. Per accenderli occorre collegarli ad una presa elettrica (230V) e eventualmente accendere l’interruttore presente nella parte posteriore, poi è sufficiente cortocircuitare due pin del connettore ATX, quello del filo verde con quello adiacente con filo nero.

Leggi tutto “Un’alimentatore gratis”