Arduino udgangsforstærkning

Fra Kommunikation-IT Holstebro HTX
Skift til: navigering, søgning

Denne opgave lægger op til et lille projekt omkring Arduinoen, der skal ende med en Arduino termostat.

Software

Det er primært hardware vi skal arbejde med i dette eksempel, så vi skal bare bruge et program der kan tænde en udgang.

I Arduino-programmet åbnes Fil - Eksempler - 02.Digital - Button[1].

Virkemåde

Programmet er gennemået i Arduino Button.

Hardware

Vi skal lige sikre os at programmet og den grundlæggende hardware spiller sammen, så vi starter med at tilslutte knappen og en lysdiode, så vi kan se hvad der sker.

Det tilsluttede kan illustreres på følgende måde:
Button arduino diag.png
Diagram der illustrerer opkobling af LED og trykknap


Test

I første omgang testes om der faktisk kommer 5V ud på udgangen, når vi trykker på knappen.

Ved en måling får jeg 4,9V ud, og det må siges at være acceptabelt - det viser sig også at lysdioden lyser.

For lige at teste om vi kan belaste det vi ønsker, så sættes en 15 Ohm 2W modstand på, for at se om udgangen kan trække den. Det kan gøres i følgende opstilling:

Arduino belast 15.png
Diagram der illustrerer viser en belastning på 15 ohm

Den umiddelbare test siger at der er noget galt, da lysdioden ikke tænder.

Ved måling viser det sig, at der kun ligger 1,18 V på udgangen, når den belastes med denne modstand. Det betyder at der kun løber 78 mA, hvilket faktisk er mere end de 40 mA som Atmel garanterer at Arduinoen kan levere.

Tilføjelse af en transistor

Der skulle faktisk løbe ca. 333 mA i modstanden hvis der lå 5V over den, så det er forståeligt at udgangen ikke kan levere den strøm.

Hvis vi ønsker at på de 333 mA til at løbe i modstanden må vi kobler yderligere kredsløb op, for at vi kan få det til det.

I første omgang anvender vi en transistor som forstærker, og her vælger vi en type der kan holde til de 333 mA - en BD241, der kan holde til 3A.

Hvis vi regner med en forstærkning i transistoren på 25 gange, så kommer vi frem til en basismodstand på 330 ohm, så kredsløbet skal kobles som følger:

Arduino belast transistor.png
Diagram der illustrerer en transistorkobling, som driver de 15 ohm

Test

Ved at måle spændingen over de 15 ohm fåes at der ligger 4,41 V over modstanden, hvilket giver en strøm på 294 mA, altså rimeligt tæt på det ønskede.

Grunden til at der ikke kommer 5V over modstanden er at der ligger ca. 0,2V over transistoren når den er tændt, men samsidigt at forsyningsspændingen på 5V falder til 4,6V når den belastes med de ca. 300 mA.

Modstanden kan holde til 2W, så den vil kunne holde til de ca. 1,3W der bliver afsat i den nu.

Udvidelse 1

Selvom det er en 2W modstand, så kan man godt afsætte mere effekt i den, hvis man bare ikke gør det konstant. Derfor vil vi gerne have tilpasset kredsløbet så modstanden arbejder med en forsyning på 9V. Det skulle gerne kunne gøre at strømmen kommer op på 0,6A og der afsættes 5,4W i de 15 ohm.

Dette kan realiseres ved at rette på kredsløbet som følger:
Arduino belast transistor2.png
Diagram der illustrerer en transistorkobling, som driver de 15 ohm på 9V

Bemærk at de 5V og de 9V har fælles stel, og at modstanden R4 er rettet til 180, så der kan leveres mere strøm til transistoren.

Test

Ved at måle spændingen over de 15 ohm fåes at der ligger 8,40 V over modstanden, hvilket giver en strøm på 560 mA, altså meget tæt på det ønskede.

Igen kan vi observere at forsyningenspændingen på 9V falder til ca. 8,7V og at der ligger ca. 0,3V over transistoren når den er helt tændt og der skal løbe de 560 mA i den.

Modstanden kan holde til 2W, så den vil ikke kunne holde til de ca. 4,7 W der bliver afsat i den nu gennem længere tid, men kortvarigt vil det ikke være noget problem.

Udvidelse 2

Hvis ønsket var at vi skulle styre f.x. et 230V kredsløb, så ville det være en fordel at anvende er relæ, så spændingen kunne håndteres, og der kunne trækkes endnu større strøm. Samtidigt vil et relæ give den fordel at der bliver skabt galvanisk adskillelse mellem arduinoen og 230V kredsløbet, så det bliver mere sikkert at arbejde med.

Der skal dog stadig udvises stor sikkerhed, når man arbejder med 230V, så vi vil i første omgang blot teste om vi kan trække relæet.

Relæet vi vælger er et 12V relæ af typen TYCO, der har 2 skiftekontakter og kan håndtere 230V 0,5A. Det er godt nok kun et relæ U2 med et skiftesæt der er i diagrammet, men princippet er det samme.

Relæspolen er på 960 ohm, så strømmen i spolen bliver 12,5 mA, men da det skal trækkes af 12V skal der alligevel en transistor på, men vi kan klare os med en BC547. Til dette kan en basismodstand på 4,7 k ohm fint levere strømmen der skal til.

En sidste ting der skal til er en diode over relæspolen. Grunden til dette er induktions-spændingen i relæ-spolen ellers ville kunne skade transistoren, når relæet slukkes.

Dette giver følgende diagram:
Arduino-transistor-relae.png
Diagram der illustrerer en transistorkobling, som driver et relæ på en 12V forsyning

Test

For at test opstillingen kan man dels høre om relæet trækker, og man kan ohme om kontakterne i relæet skifter.

En lettere løsning til relæ

Hvis man ikke ønsker at bygge relæmodulet op på print eller fumlebræt, så kan man tage en færdig løsning som et Relæ_modul, hvor man blot tilslutter GND, +5V og den udgang man ønsker at aktivere relæet fra.

En begrænsning i denne opstilling er at der kun er et skiftesæt på relæmodulet, så man skal være mere forsigtig omkring sikkerheden.

Test

Denne opstilling kan testes på tilsvarende måde som den ovenstående med 12V relæet.

Referencer

  1. Aktiver en udgang med en Knap