Датчик расстояния с пищалкой

В этом эксперименте мы делаем считываем данные с датчика расстояния и "пищим" в зависимости от того как близко находится объект.

Список деталей для эксперимента

  • 1 ультразвуковой сенсор
  • 1 пьезопищалка
  • 7 проводов

Схема на макетке

Скетч

            int buzzer = 7 ;// setting controls the digital IO foot buzzer
int echoPin = 9; 
int trigPin = 8;

void setup ()
{
  pinMode (buzzer, OUTPUT) ;// set the digital IO pin mode, OUTPUT out of Wen
  Serial.begin (9600); 
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
}
void loop ()
{
  int duration, cm; 
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW); 
  duration = pulseIn(echoPin, HIGH); 
  cm = duration / 58;
  Serial.print(cm); 
  Serial.println(" cm"); 
  delay(100);

  if (cm < 0) cm = 0;
  int wait = map(cm, 0, 300, 1, 100);
  digitalWrite (buzzer, HIGH) ;// send voice
  delay (wait) ;// Delay 1ms
  digitalWrite (buzzer, LOW) ;// do not send voice
}            
            

Обратите внимание

  • Ультразвокой сенсор имеет довольно сложный интерфейс для работы. Рекомендуются прочитать инструкцию прежде чем приступить к работе.
  • Тоже самое касается "Пассивного буззера"