Praten met ultrasone afstand Sensor HC-SR04 met behulp van een ATtiny84


Dit instructable is over een ATtiny84 interfacing met de HC-SR04 ultrasone afstandssensor met behulp van alleen de C code – geen Arduino hardware of bibliotheken.

De HC-SR04 werkt als volgt:

-Stuur een 10us hoge puls op de Trigger-pin.
-De sensor stuurt een "sonic uitbarsting" van 8 cycli.
-Luister naar de Echo-pin en de duur van het volgende hoog signaal krijgt u de tijd genomen door het geluid om heen en weer gaan van sensor naar doel.

Hier, wordt de PB0 pin gebruikt voor het verzenden van de 10 ons puls. Voor het meten van de breedte van de echo-puls, we kunnen het gebruiken van een pin-change-interrupt en een timer. Hier is het idee:

-Instellen pincode wijzigen interrupt PCINT0 zodat elke logische wijziging op pin leiden een interrupt tot zal.
-Stuur een 10 Amerikaanse puls naar de trigger-pin.
-Loop tot de interrupt PCINT0 een vlag om aan te geven stelt dat de meting is verricht.
-In de PCINT0 interrupt, een 8-bits timer te starten wanneer u een stijgende rand – dwz ziet., de echo-puls is gegaan van laag naar hoog. De 8-bits timer is ingesteld de overflow interrupt gebruikt.
-De 8-bit teller loopt over elke keer 255 is bereikt, en dus wanneer die onderbreken branden, we 255 aan een lopende teller van de 32-bits waarde toevoegen.
-In de PCINT0 interrupt, 8-bits timer stoppen wanneer u een dalende rand – dwz ziet., de echo-puls is gegaan van hoog naar laag. 32-bits-telling bijwerken en stel vlag om aan te geven dat de meting wordt gedaan.
-De gemeten pulsbreedte is in termen van de waarde van een teller en wij kunnen omzetten die in seconden, omdat we weten dat de kloksnelheid. Deze tijdwaarde wordt vervolgens gebruikt om de afstand te berekenen.

De afstand wordt vervolgens verzonden via seriële communicatie op pin PB1-ik heb dit deel in een apart artikelbehandeld. Dit is ook de reden dat we niet de 16-bits timer gebruiken om te meten de pulsbreedte – het al wordt gebruikt voor seriële communicatie. Plus het is leuk om te leren hoe het gebruik van de 8-bits timer grote waarden, juiste tellen? ;-)

De foto's voor het schema en de lay-out van de breadboard zijn gekoppeld.

Dit is de Makefile die samen met de bovenstaande code gaat:

https://gist.github.com/electronut/5763929

En hier is de Python-code gebruikt om de gegevens uitzetten:

https://gist.github.com/electronut/5730160

De Python code is een kleine wijziging aan wat ik voordat over dit onderwerp gepost.

Gerelateerde Artikelen

Hoe maak je een Instrument van de Arduino (met behulp van een ultrasone Sensor)

Hoe maak je een Instrument van de Arduino (met behulp van een ultrasone Sensor)

Dit instrument wordt gemaakt met behulp van een HC-SR04 ultrasone sensor, een Force Gevoelige Resistor en een piëzo-zoemer. U druk op de sensor van de kracht om te beginnen met het afspelen van muziek en golf je hand voor de ultrasone sensor op versc
Het weergeven van temperatuur en vochtigheid met behulp van een Arduino en een DHT11 vochtigheid Sensor

Het weergeven van temperatuur en vochtigheid met behulp van een Arduino en een DHT11 vochtigheid Sensor

Ik maakte enkele instructables laat zien hoe om te lezen van de temperatuur met behulp van een temperatuursensor.Nu heb ik ontdekt de DHT11 die doet hetzelfde werk plus luchtvochtigheid ook weergegeven. Ook het lezen van een DHT11 temperatuur is veel
Analoge sensor input raspberry pi met behulp van een MCP3008: bedrading/installatie/basic-programma

Analoge sensor input raspberry pi met behulp van een MCP3008: bedrading/installatie/basic-programma

Dus nu dat we kochten laat de ADC MCP3008 krijgen het opwaarts en lopende!Nota: Dit is mijn eerste instructables submision dus als er iets is verkeerd vertel me zo, en als je mijn stijl Leave a comment leave, ook ik ben uit Nederland dus mijn Engels
Met behulp van een temperatuursensor de snelheid van een motor met behulp van arduino

Met behulp van een temperatuursensor de snelheid van een motor met behulp van arduino

Deze toepassing is eenvoudig slechts met behulp van de temperatuursensor LM35 met een arduino-kit om te controleren van een fan en wijzigen van de snelheid met betrekking tot de temperatuur gelezen door de micro-controller die in dit geval de arduino
Maken van een 3D-Printer met behulp van een CNC-router - de "Deltabot"

Maken van een 3D-Printer met behulp van een CNC-router - de "Deltabot"

Een andere mogelijke titel zou "Maak een 3D machine met behulp van een 2D machine."Dit Instructable is over het gebruik van een CNC-router en 2D-ontwerpen voor het maken van een 3D-Printer van Delta.In mijn onderzoek over 3D printers voor hobbyi
Met behulp van een RGB-LED te detecteren kleuren

Met behulp van een RGB-LED te detecteren kleuren

I 'm gonna Toon u hoe u kunt een RGB LED en een fotocel cd's als de sensor van een kleur voor een micro-controller. Ik zal illustreren de methode om op te halen van een kleur met behulp van Arduino, en ik zal u tonen hoe u kunt controleren of de kleu
Bouwen van een gelugde fiets met behulp van een CNC gerouteerd frame de jiggernaut

Bouwen van een gelugde fiets met behulp van een CNC gerouteerd frame de jiggernaut

dit Instructable wordt gebracht aan u door Mixed Media Engineering LLC en toont het proces van opbouw van een gelugde fiets-frame met behulp van 'De Jiggernaut' een CNC gerouteerd, flat pack fiets frame jig.  Wij brengen u door alle stappen van het p
Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

Grondbeginselen van het omzetten van uw externe controle voertuig in een autonoom systeem (Drone) met behulp van een Arduino

ik begon dit project met als doel goedkoop draaien mijn RC helikopter in iets van een UAV of althans te passen sommige sensoren aan het verminderen van aanvaringen en andere "mis haps."Nu helaas aan het begin van het project misrekend ik mijn kl
$4 WiFi deur Alarm met behulp van een ESP8266 #IoT

$4 WiFi deur Alarm met behulp van een ESP8266 #IoT

In dit IoT-project zal ik u tonen hoe te maken van een WiFi-deur alarm die u alarmeert, waar u ook bent!Ik had zijn idee van het ontwerpen van een wifi toegelaten deur alarm, nadat een vriend het huis was ingebroken.Hier is een kort overzicht van hoe
Kind hoogte verstelbaar cello kruk met behulp van een IKEA Frosta kruk

Kind hoogte verstelbaar cello kruk met behulp van een IKEA Frosta kruk

Concept:Een volwassen IKEA kruk omzetten in een 12-15-inch hoogte verstelbaar kind cello/muziek krukHet eindresultaat is uiterst stabiel en comfortabel voor het kindVoeg een handvat aan de bodem voor de eenvoudige uitvoeringOverzicht:You Gonna boor e
Launcher voor lucht raketten en kurken, met behulp van een tuin slang

Launcher voor lucht raketten en kurken, met behulp van een tuin slang

Opgewonden na het vinden van de instructies voor het maken van een samengeperste lucht raket op het Internet, ik afgedrukt van de onderdelenlijst en stormde uit om alles te kopen. Ik probeerde een lokale hardware winkel, Home Depot en Lowe's, maar ko
Flexibele printplaten met behulp van een 3D-Printer maken

Flexibele printplaten met behulp van een 3D-Printer maken

U kunt etch flexibele printplaten met behulp van een 3D-printer. Zij kunnen bestaan uit zeer dunne koperen geklede plaatmateriaal of zelfs geleidende stof.Standaard koper geplateerd printplaat materiaal (FR4) van elke dikte, ook kan worden geëtst met
DIY Stickers met behulp van een Silhouette Cameo/portret

DIY Stickers met behulp van een Silhouette Cameo/portret

Who doesn't love stickers?  Van Lisa Frank naar de gouden sterren die je daarvoor grote op je huiswerk, stickers zijn gewoon geweldig.  Wat maakt hen nog beter?  Ontwerpen ze zelf!  Hier zijn de stappen die u nemen kunt om ontwerpen, afdrukken en kni
Met behulp van een Dot Matrix LED met een Arduino en Shift Register

Met behulp van een Dot Matrix LED met een Arduino en Shift Register

de Siemens DLO7135 Dot matrix LED is een verbazingwekkend stukje opto-elektronica. Het is gefactureerd als een 5 x 7 Dot Matrix intelligente Display (r) met geheugen/Decoder/Driver. Samen met dat het geheugen, het heeft een 96-ASCII karakterdisplay s