![Arduino Lightning Detector W / Real Time Graphing: 3 trin (med billeder) Arduino Lightning Detector W / Real Time Graphing: 3 trin (med billeder)](https://img.gwsigeps.com/img/circuits/arduino-lightning-detector-w/-real-time-graphing-4.jpg)
Indholdsfortegnelse:
Hej! Dette er min første instruktion, og jeg vil elske feedback!
Dette projekt startede en dag da jeg keder mig. Jeg Googled 'Arduino Projekter', og dette kom op på Arduino legepladsen.
BEMÆRK: Dette var ikke min oprindelige ide, jeg opdagede det på Arduino legepladsen, men her er den oprindelige artikel: http://runtimeprojects.com/2016/02/a-lightning-detector-for-arduino/. Jeg har foretaget ændringer til mit projekt, som jeg tror kan gøre det bedre.
Du mangler:
- x1 Arduino
(Jeg startede på en Uno men endte med at bruge en Micro)
- x1 Breadboard
(Du kan til sidst ende med at bruge en Perfboard, tror jeg)
- x4-7 jumper ledninger
(For at forbinde komponenter)
- x1 Spændingsdeler Circuit
Du har to muligheder:
- x1 Potentiometer
- x3 modstande
- x2 10K ohm
- x1 3,3 M ohm
forsyninger:
Trin 1: Background Lightning Knowledge
Når lynnedslag rammer det frigiver mange slags energi. De fleste mennesker ved, at det udsender lys og lyd, men Lightning frigiver også radiobølger, specielt i VLF (Very Low Frequency) til LF (Low Frequency) intervallerne eller ca. 3 til 300 KHz. Med Arduino kan frekvenser på ca. 7 KHz fanges, hvilket er godt inden for grænserne for udsender frekvenser.
Med dette projekt skal vi kunne hente lyn indenfor omkring 12,5 mil (20 kilometer).
Trin 2: Kredsløbet
ADVARSEL: Lyn kan fremkalde både positive og negative strømninger i ledningen, så følg venligst vejledningen omhyggeligt 100% Sørg for, at din spændingsdeler arbejder for at undgå at skade din Arduino.
Kredsløbet er meget simpelt. Den mest komplicerede del kaldes en spændingsdeler, for at forhindre, at vores Arduino bliver beskadiget af strømmen induceret i ledningen af Lightning.
Plukker dit gift: Spændingsdividere
Der er et par forskellige måder, du kan implementere en spændingsdeler i dit kredsløb.
Mulighed 1: Modstand
Hvis du skal bruge modstande, skal du vedhæfte dem som i 2. billede.
Mulighed 2: Potentiometer
Hvis du skal bruge et potentiometer, kan du vedhæfte det som i kredsløbsdiagrammet, det første billede.
Trin 3: Koden
Der er to forskellige programmer, der kører til normal drift.
Download min kode & Kredsløbsdiagrammer fra Github.
- Arduino
Arduino-programmet er meget enkelt.
void setup () {
Serial.begin (115200); // Setup seriel kommunikation ved 115200 baud.
pinMode (A4, INPUT); // Definer analog pin 4 som input
}
void loop () {
Serial.println (analogRead (A4)); // Print værdien fra pin A4 til seriel port
}
- Forarbejdning
Behandlingsprogrammet er lidt mere kompliceret
import processing.serial. *;
Serie myPort; // Seriel porten
int xPos = 1; // horisontal position af grafen float inByte = 0;
void setup () {
// Indstil vinduets størrelse (Bemærk: Kan skaleres til din skærm):
størrelse (1000, 750);
// Liste over alle tilgængelige serielle porte
// Hvis du bruger Behandling 2.1 eller nyere, skal du bruge Serial.printArray ()
println (Serial.list ());
// Åbn hvilken som helst port, den du bruger.
// Skift 0 til hvad som helst # i listen du bruger (-1)
myPort = nyt serielt (dette, Serial.list () 0, 115200);
// generer ikke en serialEvent (), medmindre du får en newline-karakter:
myPort.bufferUntil (' n');
// indledende baggrund:
baggrund (0);
}
void draw () {
// slå en streg i sandet:
slagtilfælde (127, 34, 255);
linje (xPos, højde, xPos, højde - inByte);
// i kanten af skærmen, gå tilbage til begyndelsen:
hvis (xPos> = bredde) {
xPos = 0;
baggrund (0);
}
ellers {
// øge den vandrette position:
xPos ++;
}
}
void serialEvent (Serial myPort) {
// få ASCII-strengen:
String inString = myPort.readStringUntil (' n');
hvis (inString! = null) {
// trimme ethvert hvide rum
inString = trimme (inString);
// konvertere til et int og kort til skærmens højde:
inByte = float (inString);
println (inByte);
inByte = map (inByte, 0, 1023, 0, højde);
}
}