Stap 8: De PIC en de ultrasone sensor
De HC-SR04 heeft vier pinnen:
GND - common ground Deze pin wordt aangesloten op de grond pinnen van het schema
VCC - macht spoor Deze pin moet worden gekoppeld aan de lijn van de macht van onze schakeling, die - in mijn geval wordt verzorgd door een 5V lage drop-out regulator.
De toezichthouder vindt wat hitte, zoals de batterij een 9V vierkante vorm één is. Dit betekent een daling van de 4V, dus we moeten ervoor zorgen dat we niet te veel stroom door het trekken. Ik heb niet een heatsink gebruikt ter bescherming van het, de verwerkers en de MAX7219, en de rest van de onderdelen mag niet bereiken 200mA in stroomverbruik. Aangezien de LED-s worden multiplexed, wordt de huidige LED rekening gehouden met slechts één keer.
TRIG - trigger pin
De gebruiker moet een microseconde lang impuls verschaffen over deze pin, dan wachten op de echo te komen op de echo-pin. Merk op, dat echo is hoog in de eerste tientallen milliseconden, zorg ervoor dat u wacht die uit bij initialisatie.
Deze pin wordt beweerd, een timer wordt gestart, tellen wordt gestopt wanneer de echo-puls wordt gedetecteerd. Uit de teller registratienummer weten we de tijd die nodig is voor het geluid terug te krijgen uit een eventuele belemmering. We weten de snelheid van het geluid - kunnen we de afstand berekenen!
ECHO - echo pin Deze pin wordt gebruikt voor het detecteren van de weerkaatste geluidsgolven. Ik aangesloten op een pin die interrupt-op-change vermogen heeft. Een stijgende rand de eerder genoemde teller stopt, en slaat het op in een variabele, die kort na wordt verwerkt. Voor meer info over IOC, check het gegevensblad van de processor.
Een foto van mijn sensor, onderzijde.
Bovenzijde van de sensor, met de zender aan de linkerkant, en de ontvanger aan de rechterkant. TimingDe timing van de pulsen wordt weergegeven in het gegevensblad van deze module. Zoals eerder vermeld, moet u wachten op de eerste ~ 100 ms, dan geven 10 microseconde trigger pulsen op de TRIG pin. Dergelijke duw resulteert in een uitbarsting van de 8 cyclus van de zender 'luidspreker' komen. Vervolgens moeten we wachten op een echo te komen. De echo is gevangen genomen door de ontvanger, en omgezet naar een impuls met een variabele lengte op de ECHO-pin. De lengte van de impuls van deze echo is recht evenredig met de afstand tot de eerste hindernis. Het gegevensblad geeft een eenvoudige formule voor het berekenen van dit:
afstand [cm] = t gemeten [microseconden] / 58
Dit geeft de afstand in centimeters. Ik verdeel alleen door 5.8, dus de afstand in millimeter wordt geretourneerd. Ik zal het gebruiken van vier cijfers, dat is het beste voor dit bereik en deze resolutie.
Laten we eens een kijkje op deze met een snellere oog, mijn logic analyzer:
Hoe kunnen we meten met behulp van een processor pulslengte? Met externe interrupts. Ik zal een stijgende rand IOC om te beginnen met een timer en een dalende rand gebruiken om het te stoppen. De gegevens uit het register vertelt ons de tijd die verstreken is tussen de twee randen. We hebben dat we van de afstand berekenen kunnen, zoals geïnstrueerdg door het gegevensblad.
Er is een timer op de achtergrond wanneer het detecteert een stijgende rand die het begint. Een dalende rand zal leiden tot zijn einde, we zijn met behulp van de waarde uit de registers van de timer te achterhalen van de tijd die is verstreken tussen de twee randen. Met andere woorden: we gebruiken een timer als een teller. De variabele PulseLength wordt bijgewerkt in de interrupt service routine.
WASTE_10_US(); een macro is ik schreef, het bestaat uit voldoende "nop" montage-instructies om een totale tijd voor 10 microseconden.
Montage van de sensor in de behuizing
Lucky me, de HC-SR04 past perfect in het bovenste gedeelte van mijn behuizing. Ik doorboringen door twee, dan uitgebreid hen omhoog, ze opgestapeld totdat ik was in staat om de "luidsprekers" erdoor in de gaten. Want ik strak aan ruimte in dat gebied was, moest ik solderen van de oscillator vanaf de bovenzijde aan de onderzijde. De nutteloze vier pin pin header was ook gekregen ontdoen van.
Wanneer dit omhoog het aandrijven samen met mijn moederbord, ervoer ik iets wat ik denk dat ik hier moet noemen. De volgende stap gaat over lage drop-out regelgevers.