Home > Zuhause > Virtueller Stoßfänger

Virtueller Stoßfänger

0
Advertisement

Virtueller Stoßfänger

Die Kinder kämpfen ständig?
Lassen Sie sie die virtuelle Stoßstange tragen,
Stellen Sie den Abstand zu Ihrem prefernce.
Die Stoßstange wird sie tragen, wann immer sie zu nah sind, gut, alles ...

Schritt 1: Teile:

Virtueller Stoßfänger

Virtueller Stoßfänger

Virtueller Stoßfänger

Virtueller Stoßfänger

-Arduino pro mini
-4 HC-SR04 Ultraschall-Entfernungsmesser
-Small Steckbrett
-Vibrationsmotor
-Potentiometer
-Einige 220ohm Widerstände
-PNP-Transistor
-Battary?
-Ein Gürtel
-Einfache Reißverschluss-Krawatten
-Kabel

Schritt 2: Diagramm

Virtueller Stoßfänger

Es gibt 4 Distanzmesser, die mit dem arduino an den Vcc-, Gnd- und Trig-Pins verbunden sind.
Trig pin angeschlossen an arduino's Pin 3.
Jeder Distanzmesser angeschlossen von ihm selbst aus dem Echo Pin zu arduino's 4-7 Pins.
Das Potentiometer verbindet mit 5v und gnd und seinem Ausgang mit dem arduino'schen Analog-Pin 3.
Der Transistor ist mit dem Pin 3 am Gate verbunden und verbindet auch die Masse über eine LED und einen Widerstand.
Der Vibrationsmotor verbindet den Emitter mit Strom und verbindet ihn ebenfalls mit Masse.

* Beachten Sie, dass das Bild eine alte ver ist, habe ich Änderungen am Build, fllow die Beschreibung.

Schritt 3: Der Code

#define trigPin 3 // Sonar Triger
#define echoPinL 4 // Das linke Sonarecho
#define echoPinF 5 // Frontsonarecho
#define echoPinR 6 // Richtiges Echoecho
#define echoPinB 7 // Rücksonar-Echo
#define Vibrieren 10 // Vibrieren + Led-Pin
#define disSelect A3 // Entfernungsauswahl Analog Pin

Int durationL, durationF, durationR, durationB, distanceL, distanceF, distanceR, distanceB, dSelValue;

Void setup () {
Serial.begin (9600);
PinMode (trigPin, OUTPUT);
PinMode (echoPinL, INPUT);
PinMode (echoPinF, INPUT);
PinMode (echoPinR, INPUT);
PinMode (echoPinB, INPUT);
PinMode (Vibrieren, AUSGANG);
PinMode (disSelect, INPUT);
PinMode (13, AUSGANG);
DigitalWrite (13, LOW);
aufrechtzuerhalten.

Void Schleife () {
DSelValue = map (analogRead (disSelect), 0,1023,20,400);
Serial.print ( "Abstandsauswahl:");
Serial.println (dSelValue);
Triger ();
DurationL = pulseIn (echoPinL, HIGH);
Abstand L = (Dauer L / 2) / 29,1;
Serial.print ( "Links =");
Serial.println (distanceL);
//Serial.print ( "Triger =");
//Serial.println (digitalRead (trigPin));
Verzögerung (200);

Triger ();
DurationF = pulseIn (echoPinF, HIGH);
Abstand F = (DauerF / 2) / 29,1;
Serial.print ( "Front =");
Serial.println (distanceF);
//Serial.print ( "Triger =");
//Serial.println (digitalRead (trigPin));
Verzögerung (200);

Triger ();
DurationR = pulseIn (echoPinR, HIGH);
Abstand R = (Dauer R / 2) / 29,1;
Serial.print ( "Right =");
Serial.println (distanceR);
//Serial.print ( "Triger =");
//Serial.println (digitalRead (trigPin));
Verzögerung (200);

Triger ();
DurationB = impulsIn (echoPinB, HIGH);
Abstand B = (Dauer B / 2) / 29.1;
Serial.print ( "Back =");
Serial.println (distanceB);
//Serial.print ( "Triger =");
//Serial.println (digitalRead (trigPin));
Verzögerung (200);

Wenn Distanz L <= dSelValue || distanceF <= dSelValue || distanceR <= dSelValue || distanceB <= dSelValue) {
(Int mal = 1, mal <= 8, mal ++) {
Serial.println (mal);
DigitalWrite (Vibrieren, HOCH);
DigitalWrite (13, HIGH);
Verzögerung (100);
DigitalWrite (Vibration, LOW);
DigitalWrite (13, LOW);
Verzögerung (100);
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Void triger () {
DigitalWrite (trigPin, LOW);
// digitalWrite (13, LOW);
DelayMicroseconds (1000);
DigitalWrite (trigPin, HIGH);
// digitalWrite (13, HIGH);
//Serial.print ( "Triger =");
//Serial.println (digitalRead (trigPin));
DelayMicroseconds (1000);
DigitalWrite (trigPin, LOW);
// digitalWrite (13, LOW);
aufrechtzuerhalten.

Related Reading