Hopp til innhold
Bokmål

Emne

Sensorer og aktuatorer

Fagstoff

DC-motor

En DC-motor roterer så lenge den får signal om å gjøre dette. DC-motoren kan rotere med både lavt og veldig høyt turtall. Noen motorer kan rotere med over 100 000 omdreininger i minuttet.

Beskrivelse

DC-motoren (likestrømsmotoren) er den vanligste motortypen. DC-motorer har normalt bare to ledninger, ei positiv og ei negativ. Hvis du kopler disse to ledningene direkte til et batteri, vil motoren rotere. Hvis du bytter om på plasseringa av ledningene, vil motoren rotere i motsatt retning.

En DC-motor består av en rotor (ei aksling) og en stator. Når motoren leder strøm, skapes det et magnetfelt. Akslinga begynner å rotere når motoren tilføres ei spenning på over 3 V.

Vanlige motorer for småelektronikk kan brukes på spenninger opp til 40 V og strømstyrker på opp mot 200 mA (200 milliampere). Arduinoen er ikke bygd for å handtere så stor strømgjennomgang. Derfor er det viktig at du bruker en transistor som tåler tilstrekkelig med strøm for å drive motoren.

Fordi vi i skaper magnetfelt i slike motorer, kan det oppstå spenningspulser når spenninga slås av og på. Da er det viktig at du bruker en diode mellom pluss- og minussida på motoren. Den skal hindre overspenning på transistoren når strømmen brytes for å stoppe motoren.

Bruksområder

I dag brukes elektriske motorer til det meste der noe skal gå rundt eller bevege seg, for eksempel i elektriske kjøkkenartikler, vaskemaskiner, pumper, vifter, vindusviskere, datadisker, leketøy som skal bevege seg, og elektriske biler.

Kopling

Når du skal kople en DC-motor, er det viktig at du undersøker hvor stor spenning og hvor kraftig strøm motoren krever. Noen motorer kan kjøres direkte fra Arduinoen, mens andre krever at du benytter en ekstern spenningskilde, for eksempel et 9 volts batteri. Det kan også hende at motoren kan kjøres direkte fra Arduinoen så lenge den ikke belastes, men at det kreves mer strøm enn Arduinoen kan levere, hvis motoren skal gjøre et arbeid.

Du må også bruke en for å kontrollere strømgjennomgangen og en diode for å redusere spenningstopper i oppkoplinga.

Når du kopler DC-motorer til en Arduino, kan du også bruke spesialtilpassa skjold med ekstern spenningsforsyning som kan monteres på toppen av Arduinoen.

Koplingsskjema

Et elektrisk koplingsskjema er et viktig verktøy når du skal feilsøke en krets. Illustrasjonen under viser et koplingsskjema for en DC-motor tilkopla en Arduino:

Minuspolen til motoren er kopla til Arduinoens 5V, og Arduinoens GND er kopla til jordinga til transistoren. Arduinoens D9 er kopla til inngangen til transistoren via en 1k-resistor. Utgangen til transistoren er kopla til plusspolen til motoren. Det er også kopla en diode mellom plusspolen og minuspolen.

Programmering

En DC-motor kan du styre på ulike måter. Den enkleste måten er å skru motoren på slik at den går med maksimalt turtall helt inntil programmet stoppes.

Du kan også styre motoren ved å oppgi et fast turtall den skal rotere med. Du kan ikke oppgi turtallet direkte, men må velge en verdi mellom 0 og 255, der 0 tilsvarer fullt turtall og 255 tilsvarer stillstand. Ønsker du for eksempel at motoren skal gå med halvt turtall, må du oppgi halvparten av verdien mellom 0 og 255, det vil si ca. 128.

Hvis du vil at det skal være mulig å regulere turtallet på motoren mens den går, kan du kople til et potensiometer. Da må Arduinoen lese verdien fra potensiometeret og lagre denne i en variabel. Verdien i variabelen skrives så til motoren.

Eksempel: Motor på, maksimalt turtall

I dette programeksempelet skal motoren starte og gå på maksimalt turtall så lenge programmet kjøres. Du kan ellers velge hvilken pinne du vil bruke for tilkopling, men i eksempelet vårt er motoren kopla over pinne 9, som er en -pinne.

Programkode for DC-motor på maksimalt turtall

void setup()

{

Serial.begin(9600); // Start kommunikasjon med omverdenen.

}

void loop() // Start på program som skal kjøres.

{

analogWrite(9, HIGH); // Sett pinne 9 til HIGH, start motor.

}

Eksempel: Motor på, forhandsdefinert turtall

Hvis du heller vil at motoren skal gå på et fast turtall du har forhandsbestemt, må du bruke en variabel som bestemmer turtallet.

Turtallet reguleres på en skala fra 0 til 255, der 0 er fullt turtall og 255 er avslått motor. I dette eksempelet er variabelen turtall satt til 128. Tallet ligger midt imellom 0 og 255, noe som tilsier at motoren skal gå med halv hastighet.

Programkode for DC-motor med forhandsdefinert turtall

int pin = 9; // Lag en variabel for hvilken pinne motoren skal styre fra.

int turtall = 128; // Lag en variabel for turtall, og velg turtall på en skala fra 0 til 255.

// Hvis du vil endre turtallet på motoren, endrer du tallet i variabelen turtall.

void setup()

{

Serial.begin(9600); // Start kommunikasjon med omverdenen.

}

void loop() //Start på programmet som skal kjøres.

{

analogWrite(pin, turtall); // Send signal på pinnen som er definert i variabelen pin. Sett turtall som definert i variabelen turtall.

}

Eksempel: Variabelt turtall

Du kan også styre turtallet ved hjelp av et . Da endrer du på turtallet med en vribryter. For å få til dette må Arduinoen lese innstillinga på potensiometeret og lagre denne verdien i variabelen turtall. Så må den sende denne verdien til motoren.

Koplingsskjemaet nedenfor viser en Arduino tilkopla en DC-motor. Turtallet på DC-motoren reguleres av en transistor, og DC-motoren har ekstern spenningsforsyning via et 9 volts batteri.

Programkode for DC-motor med variabelt turtall

int turtall; // Lag variabelen turtall.

int pin = 9; // Lag variabel for hvilken pinne som skal styre motoren.

void setup()

{

Serial.begin(9600); // Start kommunikasjon med omverdenen.

}

void loop() // Start program som skal kjøres.

{

turtall = map(analogRead(A0), 0, 1023, 0, 255); // Les verdi fra potensiometer gjennom pinne A0 og lagre denne i variabelen turtall.

Serial.println(turtall); // Skriv verdien i variabelen turtall til serial monitor.

analogWrite(pin, turtall); // Skriv på pinne lagra i variabelen pin verdien som er lagra i variabelen turtall.

delay(100); // Vent i 100 millisekunder før programmet kjøres igjen.

}

Utfordring

Kan du tenke deg andre sensorer som kan regulere en motor?

(Tips: Har du opplevd at det er varmt på rommet ditt og du kunne tenkt deg ei vifte? Hva om du bruker en temperatursensor til å regulere en DC-motor som er kopla til ei vifte? Tenk deg at vifta skal stå stille når det er kaldt, og gå fortere jo varmere det blir.)

Skrevet av Roger Rosmo.
Sist oppdatert 16.08.2023