Ahoj obyvatelům našich stránek! Když jsem přeložil článek na pseudo-dřevěné led hodinky, někteří čtenáři si mysleli: Je možné vyměnit vibrační senzor potřebný pro přepnutí režimu hodin, teploměru a vlhkoměru za domácí? Samozřejmě můžete, a autor Instructables pod přezdívkou ArifSae říká jak.
Master používá pružinu z navíjecího drátu jako pohyblivý prvek senzoru. Kromě měděného můžete použít také ocelovou pružinu, například z plnicího pera s tlačítkem, ale je pevnější, což ovlivní parametry senzoru.
Protože je navíjecí drát lakovaný, musí být odizolován. Za tímto účelem společnost ArifSae používá brusný papír:
Navinutí odizolovaného drátu (mimochodem odebraného z motoru poškozeného ventilátoru počítače) na hřebík:
A sbírá takovou věc z pružiny a 220 ohmového rezistoru na desce typu perfboard:
Pokud je pružina měď, měl by být takový vibrační senzor umístěn svisle, jinak by se pružina naklonila a dotkla se výstupu rezistoru i bez vibrací. S ocelovou pružinou může být senzor provozován v libovolné poloze.
Můžete potlačit odrazy kontaktů senzoru programově i hardwarem. Druhý umožňuje zjednodušit program, zatímco elektrický obvod je mírně komplikovaný. Jeden z obvodů pro potlačení hardwarových odrazů je na obrázku:
Takový obvod také prodlužuje puls s velmi krátkým kontaktem pružiny s výstupem odporu. To pomáhá programu detekovat spouštěč, i když je napsán pomocí těžkých knihoven a „zpomaluje“. Nebudete muset vylézt do firmwaru výše uvedených pseudo-dřevěných hodin, se samočinně vyrobeným senzorem se režimy přepnou v kruhu stejným způsobem jako u dokončeného.
Vývojář má k analogovému vstupu připojen snímač vibrací Arduino, což vám umožní přečíst jeho stav pomocí příkazu digitalRead i příkazu analogRead. V druhém případě můžete kondenzátor vypnout, pak nebude k dispozici žádné hardwarové potlačení chvění a program bude schopen vyhodnotit intenzitu vibrací. Níže jsou uvedeny dva příklady skici použití příslušných příkazů. První:
int senzor = A5; // senzorový kolík
int led = 13; // výchozí vedl na arduino
neplatné nastavení () {
pinMode (senzor, INPUT);
pinMode (led, OUTPUT);
Serial.egegin (9600);
}
void loop () {
int napětí = digitalRead (senzor); // číst zde snímač
Serial.println (napětí); // tiskněte napětí na sériový monitor na počítači
zpoždění (1000);
if (napětí> = 1) {// pokud se pružina při třepání dotkne
digitalWrite (led, HIGH); // zapnout vedl, aby se ukázalo, že vibrace jsou snímány
zpoždění (2000);
digitalWrite (led, LOW); // vypněte vedené hned
} // konec, pokud je napětí
} // koncová smyčka
A druhý:
int senzor = A5;
int led = A0;
void loop () {
int sensorValue = analogRead (senzor);
plovákové napětí = hodnota senzoru * (5,0 / 1023,0);
Serial.println (napětí); zpoždění (200);
pokud (napětí> 0,5) {// zde nastavte citlivost, zvyšte napětí 0,5 pro méně citlivé, pro citlivější snižte
digitalWrite (led, HIGH);
zpoždění (2000);
digitalWrite (led, LOW); }
}
Výhodou vibračního senzoru oproti senzoru je schopnost přepínat režimy tím, že se nedotýkají konkrétního bodu případu, ale klepnutím kdekoli. Ve druhém způsobu čtení může být dosaženo jiné reakce v závislosti na intenzitě klepání. Například, aby přepínání režimů na kruhu bylo reverzibilní: se slabým klepnutím na jedné straně, se silným na druhé straně.