söndag 1 april 2018

Digitala signaler på Arduino

Bilden visar utvecklingskortet Arduino Uno R3.

I övre högra hörnet finns mikrokontrollens digitala anslutningar. Dessa stift kan användas som insignaler för att läsa ett värde eller som utsignaler för att skicka ett värde.

Det är programmet i mikrokontrollen som styr hur varje stift ska användas. Som standard är signalerna insignaler och om stift ska användas som utsignaler måste det skrivas i programmet.

Insignalen är kopplat i serie med ett kraftigt motstånd vilket betyder att den inte påverkar den signal som mäts i någon nämnvärd omfattning.

Ett stift som inte får en signal kan växla slumpmässigt mellan 0 och 1. Därför brukar stiftet kopplas med ett motstånd på 10K ohm till plus eller minus. Det kallas PULLUP- respektive PULLDOWN. När stiftet får en signal, till exempel genom att en brytare sluts, kommer den signalen att vara mycket starkare än signalen från motståndet.

Alla digitala stift har en inbygg PULLUP-resistor som kan användas. Då definieras stiften som INPUT_PULLUP istället för INPUT. Signalen kommer då alltid att vara 1 förutom när stiften ansluts mot 0 (GND).

Vissa digitala stift kan ge en sk. PMV-signal, men mer om det längre fram.
Share:

torsdag 1 mars 2018

Strömförsörjning Arduino Uno

Bilden visar utvecklingskortet Arduino Uno R3. Det är det bästa kortet för att lära sig grunderna i att programmera mikrokontroller. Här är en kort introduktion av strömförsörjningen.

Längst ner till vänster sitter anslutning för strömförsörjning och strax ovanför strömkontakten sitter en spänningsregulator. Den omvandlar 7-12 volt till 5 volt vilket är den spänning som mikrokontrollen behöver. Spänningsregulatorn är ganska stor och det är för att den ska kunna avge värme som utvecklas om den inkopplade elektroniken är strömkrävande.

Uppe till vänster sitter anslutningen för USB. Här ansluts dator för programmering av mikrokontrollen men USB-uttaget kan också användas för strömförsörjning. Ett enkelt och smidigt sätt att driva Arduinon är med en vanlig powerbank.

Arduinon konsumerar ungefär 20-30 mA, men inkopplade komponenter som servon, motorer och dioder ökar strömbehovet rejält. En powerbank på 2500 mAh kan teoretiskt driva en Arduino i 100 timmar, men så fort ytterligare komponenter är inkopplade sjunker drifttiden till kanske något dygns drift.

Det finns olika sätt att minska strömkonsumtionen. Det effektivaste och enklaste är att köpa ett utvecklingskort som är optimerat för låg energiförbrukning. Den typen av kort kan ställas in för ”djup sömn” vilket innebär att i princip allt utom ett alarm är avstängt. När alarmet aktiveras väcks kortet och koden startar om från början.

Det blir lite extra komplicerat att programmera kortet när avancerade energisparfunktioner är aktiverade, men det ger samtidigt möjligheter att bygga riktigt smarta projekt som inte behöver extern strömförsörjning på flera veckor.

Den maximala strömförbrukningen per utsignal (pin) är 40 mA. Det räcker för att driva en diod, men inte för att driva en motor. När mer strömkrävande enheter ska drivas används ett relä för riktigt höga spänningar. För snabb reglering används ofta en transistor eller MOSFET. Om en utsignal kopplas till en strömkrävande enhet kan mikrokontrollern gå sönder.

Exempel

En trefärgad Neopixel-diod drar maximalt 60 mA, men en bra tumregel är att räkna 20 mA per diod eftersom alla dioder ofta inte lyser på full styrka samtidigt. Det betyder att det är helt säkert att använda 3 dioder utan separat strömförsörjning (max 180 mA), men att det förmodligen fungerar bra med 10 dioder så länge inte alla lyser samtidigt.

Om strömförbrukningen beräknas bli större än 200 mA används en separat spänningsomvandlare för att strömförsörja de inkopplade komponenterna.
Share:

torsdag 15 februari 2018

Teknik och programmering med Arduino - Lektionsplanering

Härom dagen sprang jag på en lektionsplanering för programming med Arduino. Planeringen bygger på 2 x 60 min programmering vid fem tillfällen.

Här används en kopplingsplatta, en Arduino Uno och diverse komponenter såsom piezohögtalare, fotoresistor, lysdioder i olika färger och naturligtvis lite sladdar och resistorer.

Här hittar du lektionsplaneringen för grundläggande Arduinoprogrammering.

Lektionsplaneringen är gjord av Staffan Melin och Martin Blom i Göteborg.

På Staffan sida hittade jag även en lektionsplanering för att bygga en robot med Arduino, inte helt olik den vi byggde hemma för ett par veckor sedan.
Share:

onsdag 7 februari 2018

Mikrokontroller

Hjärtat i Arduinon är mikrokontrollern. I princip alla andra komponenter på Arduinon finns där för att stödja microkontrollern. På kortet finns funktioner för att kommunicera med datorn och för strömförsörjning för mikrokontrollern och ansluten utrustning.

Mikrokontollern på en Arduino Uno är ett chip med 28 ben och den sitter i en hållare mitt på kortet. Chipet innehåller processor, minne och all elektronik för in och utsignaler. Chipen är tillverkat av Atmel som är en stor producent av chip för alla sorters elektronisk utrustning.

Den stora fördelen med Arduino är att det har blivit en defacto-standard för hobby och prototyp-projekt vilket gör det väldigt enkelt att komma igång med elektronik-programmering.

Över åren har det kommit fler och fler specialiserade kort för olika ändamål. Det finns kort med utökad funktionalitet som WiFi och GSM vilket gör det enklare att skapa projekt där kommunikation med omvärlden är en viktig del. Det finns också kort som har snabbare processor vilket betyder att mikrokontrollern klarar av att driva mer komplexa projekt där Arduinon ska hantera många in och utsignaler.

En viktig del av filosofin med Arduino är att hela designen tagits fram som Open Source. Det betyder att all design av hårdvaran och mjukvara är allmänt tillgänglig och att vem som helst får göra utvecklingskort för Arduino.

Att det finns Arduino som inte är ”original” är alltså en del av konceptet. Det viktiga att hålla reda på vilken design som ligger till grund för det kort du köper. Så länge du exemplevis köper ett kort som är Arduino Uno-kompatibelt spelar det inte så stor roll vilket märke som råkar stå på kortet.
Share:

tisdag 6 februari 2018

Det här är Arduino

Arduiono är en plattform för mikrokontroller. Det är enkelt att använda och tack vare open source filosofin är det väldigt enkelt komma igång och sina bygga egna elektronikprojekt.

Mikrokontrollern har in och utsignaler som är digitala eller analoga. Det gör det möjligt att läsa och tolka sensorer för exempelvis ljud, ljus och temperatur och att styra lampor, servon och reläer.
En Arduino Uno. Bild Creative Commons Wikipedia.

En Arduino kopplas oftast till datorn via USB och kan också programmeras för att fungera som enhet för att styra datorn (ungefär som en mus eller ett tangentbord).

En mikrokontroller kan liknas vid en liten dator. Den har en processor, arbetsminne och permanent minne där små program, sketcher, kan sparas. Utöver det har mikrokontrollern ett antal kopplingspunkter, pins, som kan anslutas för att läsa eller styra olika signaler.

Insignaler kan vara både analoga och digitala vilket gör det mycket enkelt att ansluta sensorer till Arduino.

Analoga signaler betyder i praktiken att Arduinon mäter en spänning, ofta mellan 0-5 volt. Med hjälp av resistorer och transistorer kan signaler från olika sensorer anpassas för att ge signaler i rätt intervall. Många sensorer till Arduino är anpassade för att ge signaler som redan från början ligger i rätt spänningsintervall.

Digitala signaler är det enkla fallet på eller av, 0 eller 1. Det kan exempelvis vara en knapp eller en strömbrytare som kopplas till Arduino. När en digital sensor kopplas till Arduino är det ofta en serie av nollor och ettor som tolkas till bestämda värden. Det gör att exempelvis en termometer som kopplas digitalt till Arduinon direkt kan ge ett temperaturvärde.

Utsignaler kan också vara analoga eller digitala. Den kan användas för att exempelvis tända och släcka en diod, men i mer avancerade projekt är det ofta en styrsignal till exempelvis en motor eller en strömbrytare. Digitala signaler kan också vara en serie av signaler som tolkas av den anslutna enheten. Det gör det till exempel möjligt att styra en panel av dioder med en enda signal.
Share:

söndag 4 februari 2018

Ljudstaplar

Häromdagen lödde jag ihop fyra RGB-ledstrippar så att de bildar en matris med 4 x 4 LEDs. Eftersom varje diod är adresserbar med Neopixel-biblioteket så är det enkelt att skapa olika mönster.

Så här är det kopplat:


Jag har gjort olika mönster och den bloggposten handlar om är staplar som rör sig till musiken.

Det finns inget i den här koden som känner av musiken, just nu är det ungefär i takt till musik med 120 slag per minut (vilket är ganska typiskt för popmusik).

Inga direkta konstigheter med koden. Jag försökte först att ha en slumpfunktion som avgjorde hur staplarna rörde sig, men det såg inte bra ut. Istället använder jag en array där jag hittat ett mönster som funkar.

Koden tänder 1, 2, 3 eller fyra rader. Den översta är röd, den andra gul och de två undre är gröna. Som du ser kopplas datasignalen till dioderna in på digital 2.

Om du inte har NeoPixel-biblioteket måste du ladda ner det för att allt ska funka.

Så här blev resultatet. Koden hittar du längst ner i bloggposten.




Share:

onsdag 31 januari 2018

Hello World!

Hej och välkommen till bloggen på CodeKid.se

Här kommer du hitta tips om olika programmerings och elektronikprojekt. Vi kommer mest att skriva om Arduino och olika varianter av micropython.

Vi har en annan sida där vi skriver om roboten Edison. Vem vem, vi kanske skriver om den också.
Share:

Leta i den här bloggen

Använder Blogger.

Sidor

Deltagare

Tomteluva med neopixel

RGB-dioder finns i olika former och den sort jag tycker är allra roligast är de som går att styra individuellt. Vi brukar använda Adaf...