Hej, indbyggerne på vores site! Da jeg oversatte artiklen om pseudo-træ led ur, nogle læsere tænkte: er det muligt at udskifte den vibrationssensor, der er nødvendig for at skifte ur, termometer og hygrometer tilstande med en hjemmelavet? Selvfølgelig kan du det, og forfatteren af Instructables under kaldenavnet ArifSae fortæller hvordan.
Skibsføreren bruger en fjeder fra en viklingstråd som et bevægeligt element på sensoren. Ud over et kobber kan du f.eks. Bruge en stålfjeder fra en fyldpen med en knap, men den er mere stiv, hvilket vil påvirke sensorens parametre.
Da viklingstråden er lakeret, skal den strippes. For at gøre dette anvender ArifSae sandpapir:
Vikling af en strippet ledning (forresten taget fra motoren fra en brudt computerventilator) på en søm:
Og det samler sådan noget fra en fjeder og en 220-ohm-modstand på et bord af perfboard-type:
Hvis fjederen er kobber, skal en sådan vibrationssensor placeres strengt lodret, ellers vil fjederen vippe og berøre modstandens output, selv i fravær af vibrationer. Med en stålfjeder kan sensoren betjenes i enhver position.
Du kan undertrykke afvisning af sensorkontakterne både programmatisk og hardware. Den anden giver dig mulighed for at forenkle programmet, mens det elektriske kredsløb er lidt kompliceret. En af kredsløbene til undertrykkelse af hardware-bounce er vist på figuren:
Et sådant kredsløb forlænger også pulsen med en meget kort kontakt med fjederen med modstandens udgang. Dette hjælper programmet med at registrere en trigger, selvom det er skrevet ved hjælp af tunge biblioteker og "bremser". Du behøver ikke at klatre ind i firmwaren til de førnævnte pseudo-træure med en selvfrembragt sensor, tilstandene skifter i en ring på samme måde som med den færdige.
Udvikleren har en vibrationssensor tilsluttet den analoge indgang Arduino, som giver dig mulighed for at læse dens tilstand med både digitalRead-kommandoen og analogRead-kommandoen. I det andet tilfælde kan du slukke kondensatoren, så er der ingen undertrykkelse af hardwarepatcher, og programmet vil være i stand til at evaluere vibrationsintensiteten. Nedenfor er to skitseeksempler på anvendelse af de relevante kommandoer. Første:
int-sensor = A5; // sensorpind
int led = 13; // standard led på arduino
ugyldig opsætning () {
pinMode (sensor, INPUT);
pinMode (led, OUTPUT);
Serial.begin (9600);
}
void loop () {
int spænding = digital læse (sensor); // læse sensor her
Serial.println (spænding); // udskriv spænding til seriel skærm på pc
forsinkelse (1000);
if (spænding & gt; = 1) {// hvis fjederkontakter ved rysten
digitalWrite (ledet, HØJT); // tænd for ledning for at vise, at vibrationer registreres
forsinkelse (2000);
digitalWrite (ledet, lavt); // sluk led nu
} // slut hvis spænding
} // slutsløjfe
Og den anden:
int-sensor = A5;
int led = A0;
void loop () {
int sensorValue = analogRead (sensor);
float spænding = sensorValue * (5.0 / 1023.0);
Serial.println (spænding); forsinkelse (200);
hvis (spænding & gt; = 0,5) {// indstil følsomhed her, øg spænding 0,5 for mindre følsom, formindsk for mere følsom
digitalWrite (ledet, HØJT);
forsinkelse (2000);
digitalWrite (ledet, lavt); }
}
En fordel ved en vibrationssensor frem for en sensor er evnen til at skifte tilstand ikke ved at røre ved et specifikt punkt på sagen, men ved at trykke på det hvor som helst. I den anden aflæsningsmetode kan en anden reaktion opnås afhængigt af tappens intensitet. For eksempel at gøre omskiftningen af tilstande på ringen reversibel: med et svagt tryk på den ene side, med en stærk på den anden.