source: t29-www/physical-computing/Sonar-1637-tone/Sonar-1637-tone.ino @ 1225

Last change on this file since 1225 was 1225, checked in by heribert, 7 years ago

Aktualisierungen und kleine Änderungen

File size: 2.1 KB
Line 
1// ---------------------------------------------------------------------------
2// Ultraschall mit TM1637-Anzeige,
3// beachte: Bei Verwendung von "NewPing" und "tone()" kommt es zum Konflikt.
4// Daher wird hier "NewPing" nicht verwendet sondern unser selbst gebastelter Sketch
5// ---------------------------------------------------------------------------
6
7#include "SevenSegmentTM1637.h"  // inkludieren der Display-Library
8
9int TRIGGER_PIN = 12;       // Pin-Definition
10#define ECHO_PIN 11         // alternative Pin-Definition, benoetigt weniger Speicherplatz
11
12#define PIN_CLK  4   // wie oben
13#define PIN_DIO  5   // wie oben
14
15SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);   // Einbinden des 4x7-Segment-Displays
16
17void setup() {
18 
19  display.begin();            // initialisieren des Displays
20
21  pinMode(TRIGGER_PIN, OUTPUT);
22  pinMode(ECHO_PIN, INPUT);
23 
24}
25
26void loop() {
27
28 delay(100);
29 noTone(8);                         // der Lautsprecher muss an Pin 8 angeschlossen werden
30 
31 digitalWrite(TRIGGER_PIN, LOW);    // Erzeugen des Triggerimpulses (Ultraschall)
32 delayMicroseconds(10);           
33 digitalWrite(TRIGGER_PIN, HIGH);
34 delayMicroseconds(15);
35 digitalWrite(TRIGGER_PIN, LOW);
36 
37 long zeit = pulseIn(ECHO_PIN, HIGH);  // misst die Impulsdauer, beginnend mit High bis Low in micro-Sekunden
38 long d = zeit*0.0343/2;               // berechnet die Distanz (wurde besprochen!)
39 display.clear();                      // alte Anzeige loeschen
40 display.print(d);                     // aktuelle Distanz anzeigen
41 
42if (d>=60) {
43  display.setBacklight(20);         // Display soll schwach leuchten (20)
44  }
45 
46 if (d<60) {                     
47  display.setBacklight(100);        // Display "volle Pulle" (100)
48  tone(8,map(d,15,60,2000,150));    // die map-Anweisung berechnet die Frequenz (Tonhoehe)         
49 
50  if (d<15) {
51     tone(8,800); delay(100); tone(8,400,100); display.blink();  // Intervall-Ton zuerst (Gefahr), dann das Blinken.
52                                    // anstelle des Intervalltones kann man auch eine Ansage ueber das Ton-Modul erzeugen
53  }    // drittes "if" Ende
54}      // zweites "if" Ende               
55
56}   // Loop Ende
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License