Inhoudsopgave:

RGB-thermometer met PICO - Ajarnpa
RGB-thermometer met PICO - Ajarnpa

Video: RGB-thermometer met PICO - Ajarnpa

Video: RGB-thermometer met PICO - Ajarnpa
Video: Create a Graphical Thermometer with a LM35 and a PICO Display 2024, November
Anonim
Image
Image

Dat was het eindresultaat van onze inspanning van vandaag. Het is een thermometer die je laat weten hoe warm het is in je kamer, door gebruik te maken van een RGB-ledstrip die in een acrylcontainer is geplaatst, die is aangesloten op een temperatuursensor om de temperatuur te lezen. En we zullen PICO gebruiken om dit project tot leven te brengen.

Stap 1: Componenten

De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron
  • PICO, beschikbaar op mellbell.cc ($ 17)
  • RGB-ledstrip van 1 meter
  • 3 TIP122 Darlington-transistor, een bundel van 10 op ebay ($ 3,31)
  • 1 PCA9685 16-kanaals 12-bits PWM-stuurprogramma, beschikbaar op ebay ($ 2,12)
  • 12v stroombron
  • 3 weerstanden van 1k ohm, een bundel van 100 op ebay ($ 0,99)
  • Een breadboard, beschikbaar op ebay ($ 2,30)
  • Mannelijke - vrouwelijke jumperdraden, een bundel van 40 op ebay ($ 0,95)

Stap 2: De RGB-strip van stroom voorzien met transistors en een stroombron

De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron
De RGB-strip van stroom voorzien met transistors en een stroombron

LED-strips zijn flexibele printplaten die zijn gevuld met LED's. Ze worden op veel manieren gebruikt, zoals u ze in uw huis, uw auto of fiets kunt gebruiken. Je kunt er zelfs coole RGB-wearables mee maken.

Dus, hoe werken ze? Het is eigenlijk vrij eenvoudig. Alle leds in de ledstrip zijn parallel geschakeld en werken als één grote RGB-led. En om het te laten werken, hoeft u de strip alleen maar aan te sluiten op een 12V-hoogstroombron.

Om de ledstrip met een microcontroller aan te sturen, moet je de stroombron scheiden van de besturingsbron. Omdat de LED-strip 12v nodig heeft en onze microcontroller niet zoveel uitgangsspanning kan bieden, sluiten we daarom een externe 12v hoogstroombron aan, terwijl we de stuursignalen van onze PICO sturen.

Ook is de stroomafname van elke RGB-cel hoog, omdat elke afzonderlijke LED erin - de rode, groene en blauwe LED's - 20 mA nodig heeft om te werken, wat betekent dat we 60 mA nodig hebben om een enkele RGB-cel te laten branden. En dat is erg problematisch, omdat onze GPIO-pinnen maar het maximum van 40mA per pin kunnen leveren, en als je de RGB-strip rechtstreeks op PICO aansluit, verbrandt deze, dus doe het alsjeblieft niet.

Maar er is een oplossing, en het wordt de Darlington-transistor genoemd, een paar transistors met een zeer hoge stroomversterking, die ons zal helpen onze stroom te vergroten om aan onze behoeften te voldoen.

Laten we eerst meer te weten komen over de huidige winst. Stroomversterking is een eigenschap van transistoren, wat betekent dat de stroom die door de transistor gaat, ermee wordt vermenigvuldigd, en de vergelijking ziet er als volgt uit:

laadstroom = ingangsstroom * transistorversterking.

Dit is nog sterker in een Darlington-transistor, omdat het een paar transistors is en niet één, en hun effecten worden met elkaar vermenigvuldigd, wat ons enorme stroomwinsten oplevert.

We gaan nu de ledstrip aansluiten op onze externe stroombron, de transistor, en natuurlijk onze PICO.

  • Basis (transistor) → D3 (PICO)
  • Collector (transistor) → B (ledstrip)
  • Zender (transistor) → GND
  • +12 (LED-strip) → +12 (stroombron)

Vergeet niet om PICO's GND aan te sluiten op de aarde van de stroombronnen

Stap 3: De kleuren van de RGB LED-strip regelen

De kleuren van de RGB LED-strip regelen
De kleuren van de RGB LED-strip regelen
De kleuren van de RGB LED-strip regelen
De kleuren van de RGB LED-strip regelen
De kleuren van de RGB LED-strip regelen
De kleuren van de RGB LED-strip regelen

We weten dat onze PICO een enkele PWM-pin (D3) heeft, wat betekent dat hij onze 16 LED's niet native kan aansturen. Daarom introduceren we de PCA9685 16-kanaals 12-bit PWM I2C-module, waarmee we PICO's PWM-pinnen kunnen uitbreiden.

Allereerst, wat is I2C?

I2C is een communicatieprotocol waarbij slechts 2 draden nodig zijn om met een of meer apparaten te communiceren door het adres van het apparaat te adresseren en welke gegevens te verzenden.

Er zijn twee soorten apparaten: het eerste is het master-apparaat, dat verantwoordelijk is voor het verzenden van gegevens, en het andere is het slave-apparaat, dat de gegevens ontvangt. Dit zijn de pin-outs van de PCA9685-module:

  • VCC → Dit is de voeding voor het bord zelf. 3-5v maximaal
  • GND → Dit is de negatieve pin en deze moet op de GND worden aangesloten om het circuit te voltooien.
  • V+ → Dit is een optionele voedingspin die de servo's van stroom voorziet als er een op uw module is aangesloten. U kunt het losgekoppeld laten als u geen servo's gebruikt.
  • SCL → Seriële klokpen, en we verbinden deze met de SCL van PICO.
  • SDA → Serial Data-pin, en we verbinden deze met de SDA van PICO.
  • OE → uitgang geactiveerde pin, deze pin is actief LAAG, wanneer de pin LAAG is, zijn alle uitgangen ingeschakeld, wanneer deze HOOG is, zijn alle uitgangen uitgeschakeld. En deze optionele pin wordt gebruikt om de pinnen van de module snel in of uit te schakelen.

Er zijn 16 poorten, elke poort heeft V+, GND, PWM. Elke PWM-pin werkt volledig onafhankelijk en ze zijn ingesteld voor servo's, maar je kunt ze gemakkelijk voor LED's gebruiken. Elke PWM kan 25mA stroom aan, dus wees voorzichtig.

Nu we weten wat de pinnen van onze module zijn en wat het doet, laten we het gebruiken om het aantal PICO's PWM-pinnen te vergroten, zodat we onze RGB LED-strip kunnen besturen.

We gaan deze module samen met TIP122-transistoren gebruiken, en dit is hoe je ze op je PICO moet aansluiten:

  • VCC (PCA9685) → VCC (PICO).
  • GND (PCA9685) → GND.
  • SDA (PCA9685) → D2 (PICO).
  • SCL (PCA9685) → D3 (PICO).
  • PWM 0 (PCA9685) → BASIS (eerste TIP122).
  • PWM 1 (PCA9685) → BASIS (tweede TIP122).
  • PWM 2 (PCA9685) → BASIS (derde TIP122).

Vergeet niet de GND van de PICO te verbinden met de GND van de voeding. En zorg ervoor dat u de PCA9685 VCC-pin NIET aansluit op de +12 volt van de voeding, anders raakt deze beschadigd

Stap 4: Regel de RGB LED-stripkleur afhankelijk van de sensormeting

Bedien de RGB LED-stripkleur afhankelijk van de sensormeting
Bedien de RGB LED-stripkleur afhankelijk van de sensormeting
Bedien de RGB LED-stripkleur afhankelijk van de sensormeting
Bedien de RGB LED-stripkleur afhankelijk van de sensormeting

Dit is de laatste stap in dit project, en daarmee zal ons project transformeren van 'dom' naar slim zijn en het vermogen hebben om zich te gedragen afhankelijk van zijn omgeving. Om dat te doen gaan we onze PICO verbinden met de LM35DZ temperatuursensor.

Deze sensor heeft een analoge uitgangsspanning die afhankelijk is van de temperatuur eromheen. Het begint bij 0v wat overeenkomt met 0 Celsius, en de spanning neemt toe met 10mV voor elke graad boven 0c. Dit onderdeel is heel eenvoudig en heeft slechts 3 poten, en ze zijn als volgt verbonden:

  • VCC (LM35DZ) → VCC (PICO)
  • GND (LM35DZ) → GND (PICO)
  • Uitgang (LM35DZ) → A0 (PICO)

Stap 5: De definitieve code

De definitieve code
De definitieve code
De definitieve code
De definitieve code

Nu we alles hebben aangesloten op onze PICO, kunnen we beginnen met het programmeren ervan zodat de LED's van kleur veranderen afhankelijk van de temperatuur.

Hiervoor hebben we het volgende nodig:

Een cons. variabele genaamd "tempSensor" met de waarde A0 die zijn waarde ontvangt van de temperatuursensor

Een integer-variabele met de naam "sensorReading" met initiële waarde 0. Dit is de variabele die de onbewerkte sensormeting zal opslaan

Een vlottervariabele met de naam "volt" met de initiële waarde 0. Dit is de variabele die de geconverteerde ruwe meetwaarde van de sensor naar volt zal opslaan

Een vlottervariabele met de naam "temp" met initiële waarde 0. Dit is de variabele die de geconverteerde sensorvoltmetingen opslaat en omzet in temperatuur

Een Integer-variabele met de naam "mapped" met initiële waarde 0. Dit slaat de PWM-waarde op waarin we de temp-variabele toewijzen, en deze variabele regelt de kleur van de LED-strip

Met behulp van deze code leest PICO de gegevens van de temperatuursensor, zet deze om in volt en vervolgens in Celsius, en ten slotte brengt hij de Celsius-graad in een PWM-waarde die kan worden gelezen door onze LED-strip, en dat is precies wat we nodig hebben.

Stap 6: Je bent klaar

Image
Image

Ook hebben we een acryl houder gemaakt voor de LED strip om deze mooi rechtop te laten staan. U kunt de CAD-bestanden hier vinden als u ze wilt downloaden.

Je hebt nu een geweldig uitziende LED-thermometer die je automatisch de temperatuur vertelt als je ernaar kijkt, wat op zijn zachtst gezegd best handig is: P

Laat een reactie achter als je suggesties of feedback hebt, en vergeet niet om ons te volgen op Facebook of bezoek ons op mellbell.cc voor meer geweldige inhoud.

Aanbevolen: