Gratis verzending vanaf €74,95 NL (€99,95 BE/DE)

Voor 16:00 besteld = morgen in huis

Express voor 11:30 besteld = vanavond in huis*

14 dagen gratis terugsturen*

Logo Elektronica Voor Jou


In dit project ga je leren hoe je een thermometer maakt met een Arduino. De temperaturen die gemeten worden gaan je laten zien op een zeven segmenten scherm. Als sensor gebruiken we een DS18B20 temperatuur sensor. Voor het zeven segmenten scherm gebruiken we een 2-digit 7-segment LED rood.

  • Niveau – Gemiddeld 45% 45%
  • Tijdsduur – 30 / 45 Min 45% 45%
  • Kosten – €41,84 euro compleet 35% 35%

Stap 1: Benodigdheden

DS18B20 temperatuur sensor

De DS18B20 is een digitale temperatuur sensor. Die makkelijk met een Arduino communiceert door één data pin. De linker pin van de sensor moet aangesloten worden op de GND (-). De middelste pin wordt aangesloten op een analoge data pin en de rechter word aangesloten op de VCC (5v). De DS18B20 is te krijgen in een waterdichte en een niet beschermde versie. De waterdichte versie wordt vaak gebruikt in vloeistoffen of vochtige ruimtes. De “kale” sensor wordt vaak gebruikt voor het meten van de buitentemperatuur.
De DS18B20 kan temperaturen meten tussen de -55 en de 125 graden Celsius. Met een nauwkeurigheid van 0,5 tussen de -10 en de 85. Het is niet aan te raden om de sensor bloot te stellen aan temperaturen boven de 100 graden Celsius. In principe is voor het gebruik van deze sensor alleen de GND en de data pin nodig. Alleen zijn de waardes dan zo laag dat ze niet te lezen zijn. Om de waardes hoger te maken moet er een “step-up” weerstand gebruikt worden. Dit is in het geval van deze sensor een 4,7K Ohm weerstand die tussen de VCC en de data-aansluiting wordt geplaatst.

2-digit 7-segment LED rood

Een 7-segmenten display komt in heel veel verschillende soorten en maten. Voor dit project gebruiken we een met 2 cijfers en 18 aansluit pins. De lay-out van de pins staan in de afbeelding hieronder. In dit project gebruiken we de DP aansluitingen niet. Zoals je kan zien in de afbeelding hieronder heeft elk “streepje” een eigen letter(s). In dit project is er geen ruimte voor eigen inbreng bij het aansluiten van het display. Zodra de volgorde niet hetzelfde is zal de codering niet goed werken.

Het display kan na lang gebruik redelijk warm worden. Dit kan onder de 80 graden Celsius geen kwaad.

Stap 2: Bouwen en Bedraden

Nu je alle onderdelen hebt kan je beginnen met het aansluiten van de onderdelen. Hieronder zie je een tekening hoe je de onderdelen aansluit op het Breadboard en de Arduino. let wel op dat je de DS18B20 goed aansluit, als je deze verkeerd om aansluit kan de sensor kapot gaan. De sensor heeft een platte en een bolle kant. De Platte kant is de voorkant. De ground pin zit dan aan de linker kant.

 

DS18B20 Arduino thermometer fritzing

Stap 3: Programmeren

 

De meeste lijnen codering worden besteed aan de 7-segmenten display. Deze heeft veel codering nodig dit komt doordat er geen simpele bibliotheek voor is. Daarnaast bestaat de codering uit wat standaard lijnen en het aflezen van de sensor.

In het begin zorgen we dat alles goed opgezet word. Je moet de bibliotheken voor de sensor toevoegen. Daarna aangeven op welke pin de data binnenkomt. Vervolgens voer je die data in de bibliotheken. Nu komen we bij het gedeelte van de 7-segmenten display aan. We maken een array aan. In deze array moeten we aangeven hoeveel cijfers we gaan toevoegen in dit geval 10 (0-90. Ook moeten we aangeven hoeveel waardes er per cijfer is. Vervolgens ga je de gegevens per cijfer aangeven dit doe je door middel van HIGH of LOW. De 7 waardes die je gaat geven staat voor de 7 segmenten in het display (a, b, c, d, e, f, g). Als een segment op HIGH wordt ingesteld zal dat segment oplichten.

Als je dit allemaal gedaan hebt moeten we nog zorgen dat we de cijfers apart kunnen bedienen. Dit gaan we doen door een 3de en 4de void aan te maken. Deze void’s moeten we in het begin al oproepen. Nu de hele voorbereiding klaar is gaan we naar de setup. Hier starten we de sensor en de seriële communicatie. Daarna geven we aan welke pins input en welke output zijn, hierbij zijn pin 14 en 15 analoge pin A0 en A1.

Vervolgens kunnen we beginnen aan de hoofdcodering. Als eerste vragen we aan de sensor de waardes die hij meet. Daarna voegen we deze waardes aan een variabelen. Deze waarde is een getal met twee cijfers achter de komma. Dit is een probleem omdat we maar 2 cijfers kunnen laten zien. Voor het eerste cijfer (D1) moeten we de waarde delen door 10 en dan het eerste cijfer voor de komma pakken. Voor het tweede cijfer (D2) gebruiken we de normale waarde en pakken we het eerste cijfer voor de komma. Zo zou je bij een waarde van 23,45 op D1 2 krijgen en op D2 3 krijgen. Vervolgens moeten we deze cijfers nog vertalen zodat de juiste segmenten gaan branden. Dit doen we door te verwijzen naar de 3de en 4de void waar we deze vertaling gaan doen. Als laatste binnen de grote codering schrijven we de temperatuur op de seriële monitor.

Voor de 3de en 4de void wordt dezelfde codering gebruikt alleen een andere begin pin. Voor het werken van deze codering is het belangrijk dat de a t/m g van een cijfer ook achter elkaar aangesloten is. Dus van D1 zit a op pin 2 en g op pin 8. Zo kan je om naar het volgende segment te gaan gewoon 1 op tellen bij de variabele voor de pin.

Om de we beginnen de void met aangeven waar de a van dat cijfer zit aangesloten. Vervolgens maken we een for loop aan die zichzelf in totaal 7 keer afspeelt. Dit zodat je langs alle segmenten gaat en alle waardes die moeten ingevoerd worden. In deze loop beginnen we met vertellen wat hij moet doen met bij de eerste pin. Door te verwijzen naar de array. Elke keer dat deze void wordt herhaalt komt er 1 bij de pin bij dus gaat hij naar het volgende segment.

Dit werkt hetzelfde voor de 4de void. Alleen heeft hij dan een andere begin pin.

Informeer naar de mogelijkheden
We nemen z.s.m. contact met u op

VERSTUUR
close-link
Verzend mogelijkheden

Pakket
Doordeweeks voor 16:00 besteld is dezelfde dag verstuurd. (Levering dinsdag t/m zaterdag)Gratis vanaf €74,95

Brievenbus – Met track&trace
Doordeweeks voor 16:00 besteld is vandaag verstuurd. (Levering dinsdag t/m zaterdag)Gratis vanaf €74,95

Brievenbus – Zonder track&trace
Levertijd 1 – 3 werkdagen
Express levering
Doordeweeks voor 11:30 besteld = vanavond in huis – Voor 23:59 besteld = morgen in huis huis. (Levering maandag t/m vrijdag)
Gratis vanaf €124,95

Ophalen in Leusden
Haal je bestelling bij ons op: Fokkerstraat 12 - Leusden
close-link
De waardering van www.elektronicavoorjou.nl bij Webwinkel Keurmerk Klantbeoordelingen is 9.2/10 gebaseerd op 1031 reviews.