Hei, innbyggerne på nettstedet vårt! Da jeg oversatte artikkelen på pseudo-tre led klokke, tenkte noen lesere: er det mulig å bytte ut vibrasjonssensoren som trengs for å bytte klokke-, termometer- og hygrometer-modus med en hjemmelaget en? Selvfølgelig kan du det, og forfatteren av Instructables under kallenavnet ArifSae forteller hvordan.
Mesteren bruker en fjær fra en svingete ledning som et bevegelig element av sensoren. I tillegg til en kobber, kan du for eksempel bruke en stålfjær fra en fyllepenn med en knapp, men den er mer stiv, noe som vil påvirke sensorens parametere.
Siden viklingstråden er lakkert, må den strippes. For å gjøre dette bruker ArifSae sandpapir:
Slynging av en strippet ledning (forresten, hentet fra motoren til en ødelagt datamaskinvifte) på en spiker:
Og den samler noe fra en fjær og en 220 ohm-motstand på et tavle av perfboardtype:
Hvis fjæren er kobber, bør en slik vibrasjonssensor plasseres strengt vertikalt, ellers vil fjæren vippe og berøre utgangen fra motstanden selv i fravær av vibrasjoner. Med en stålfjær kan sensoren betjenes i hvilken som helst stilling.
Du kan undertrykke avvisningen av sensorkontaktene både programmatisk og maskinvare. Den andre lar deg forenkle programmet, mens den elektriske kretsen er litt komplisert. En av kretsene for undertrykkelse av maskinvare-avvisning vises på figuren:
En slik krets forlenger også pulsen med en veldig kort kontakt av fjæren med utgangen fra motstanden. Dette hjelper programmet med å oppdage en trigger, selv om den er skrevet med tunge biblioteker og "bremser". Du trenger ikke å klatre inn på firmwaren til de nevnte pseudotreklokker, med en egenprodusert sensor, modusene vil bytte i en ring på samme måte som med den ferdige.
Utvikleren har en vibrasjonssensor koblet til den analoge inngangen Arduino, som lar deg lese tilstanden med både digitalRead-kommandoen og analogRead-kommandoen. I det andre tilfellet kan du slå av kondensatoren, da vil det ikke være noen undertrykkelse av maskinvareprat, og programmet vil kunne vurdere intensiteten i vibrasjonen. Nedenfor er to skisseeksempler på bruk av passende kommandoer. Den første:
int-sensor = A5; // sensorpinne
int led = 13; // standard ledet på arduino
ugyldig oppsett () {
pinMode (sensor, INPUT);
pinMode (ledet, UTGANG);
Serial.begin (9600);
}
void loop () {
int spenning = digitallesning (sensor); // les sensor her
Serial.println (spenning); // skriv ut spenning til seriell monitor på pc
forsinkelse (1000);
if (spenning & gt; = 1) {// hvis fjærkontakter ved risting
digitalWrite (ledet, HØYT); // slå på ledet for å vise at vibrasjoner blir registrert
forsinkelse (2000);
digitalWrite (ledet, LAV); // slå av ledet nå
} // slutt hvis spenning
} // sluttsløyfe
Og den andre:
int-sensor = A5;
int led = A0;
void loop () {
int sensorValue = analogRead (sensor);
float spenning = sensor verdi * (5.0 / 1023.0);
Serial.println (spenning); forsinkelse (200);
Hvis (spenning & gt; = 0.5) {// still følsomhet her, øk spenningen 0.5 for mindre følsom, reduser for mer følsom
digitalWrite (ledet, HØYT);
forsinkelse (2000);
digitalWrite (ledet, LAV); }
}
Fordelen med en vibrasjonssensor fremfor en sensor er muligheten til å bytte modus ikke ved å berøre et bestemt punkt på saken, men ved å trykke på den hvor som helst. I den andre lesemetoden kan en annen reaksjon oppnås, avhengig av intensiteten på å tappe. For eksempel for å gjøre bytte av modus på ringen reversibel: med et svakt trykk på den ene siden, med en sterk på den andre.