Arduino – Lektion 13: Optoisolerade Ingångar

Här är en enkel men mycket användbar lektion. Precis som man använder relä för att styra större spänningar/laster och få en galvanisk åtskiljning så använder man optokopplare för att läsa av insignaler som har högre spänning (eller skilja signaler galvaniskt åt) än den som processorn arbetar på. Det är direkt vansinne att dra ut matningsspänningen till processorn i en maskin där det finns många störkällor. Då är det bättre att ha 2 skilda spänningskällor och inte ens dra ihop jorden (0VDC), det är galvanisk åtskiljning. Precis som i ett relä får man potentialfria kontakter som inte har med den 0VDC som man har internt för processorn. Sedan vill man ofta ha en högre spänning ute på en maskin som t.ex. 24VDC då relä, kontaktorer, ventiler etc. styrs av detta. Vi har tagit fram ett kort med 4 optoisolerade ingångar som är lätt att ansluta till t.ex. en Arduino, du hittar denna produkt här. Vi säljer även lösa optokopplare i vår webshop. Men då detta är en lektion så gör vi detta med lösa komponenter och använder oss utav EL816 som är den optokopplare vi säljer i webshopen, men det finns massa likvärdiga på marknaden. Skall man bara ha dem för digitala ingångar och inte allt för snabba förlopp så går det mycket bra med EL816, då den är mycket billig. Det finns många olika inkopplingar, men vi kör med denna som finns på bilden nedan.

arduino_optoinput

En optokopplare fungerar som en lysdiod som sedan lyser på fototransistor, så i princip fungerar den som en NPN transistor men den har en galvanisk isolering. För att göra denna test kan du t.ex. ta ett 9V batteri som extern strömkälla och via en knapp och resistor gå in på optokopplaren och sedan tillbaka till 0V på 9V batteriet. Du skapar då en ström genom lysdioden som finns inuti optokopplaren som i sin tur lyser på fototransistorn. På den andra sidan (den säkra sidan där mikroprocessorn finns) har man en pullup (i vårt fall 10Kohm) till den matningsspänning som processorn körs på. Man kan i princip använda den interna pullup som finns i processorn när man sätter I/O som ingång, men vi vill ha en extern så den inte flyter fritt. Denna inkoppling innebär att signalen inverteras genom optokopplaren, men det är inga problem, det tar man hand om i programmet (ibland ser man gamla konstruktioner där de inverterar denna signal, men det är komponentslöseri). Vi har även en lysdiod och ett förkopplingsmotstånd så vi får en visuell indikering på insignalen, den lyser när vi har en hög insignal, dvs. inte inverterad eftersom vi sänker den via fototransistorn. Man ser även konstruktioner där man sätter denna lysdiodsindikering i serie med resistorn på insidan, det funkar lika bra, dock kommer den då att variera i styrka beroende på vilken inspänning man har. I vårt fall lyser den lika starkt oberoende av inspänning. En annan fördel med att ha den på insidan är att vi får en visuell indikering på att även optokopplaren är hel.

Programmet är mycket enkelt och finns att ladda ner här och förklaring till koden finns som kommentarer i programmet.

Föregående Sida    –    Nästa Sida