Проблема по осуществлению ультразвукой схемы

В своем проекте я использовал Arduino Uno для получения частоты более 35000 Гц, а выход цифрового контакта был подключен к схеме ультразвукового передатчика:

Однако на передающей стороне он не работает. Вот код Arduino:

void setup()
{
    Serial.begin(9600);
}

void loop()
{
    pinMode(13,OUTPUT);
    pinMode(12,OUTPUT);
    int pirSenses = analogRead(A1);
    int pirOuts=11;
    pinMode(pirOuts,INPUT); /*PIR sensor 1*/
    int pirSense = analogRead(A0);
    int pirOut = 10;
    pinMode(pirOut,INPUT); /*PIR sensor 2*/
    Serial.println(pirSense);Serial.println(pirSenses);

    if (pirOut || pirOuts == HIGH)
    { /*tone produces ultrasonic frequency*/
        delay(8000);
        tone(13, 50132); delay(100); noTone(13); delay(10);
        tone(13,54621);  delay(50);  noTone(13); delay(50);
        tone(13,35689);  delay(60);  noTone(13);
    } 
    else if (pirOut||pirOuts==LOW)
    {
        tone(13, 50132); delay(100); noTone(13); delay(10);
        tone(13,54621);  delay(50);  noTone(13); delay(50);
        tone(13,35689);  delay(60);  noTone(13);
    } 
    else
    {}
}

И передатчик (модель "MCPCT-G5100-4139") спецификация:

Пожалуйста, помогите мне с этой проблемой. Спасибо!

, 👍0

Обсуждение

Откуда ты знаешь, что это не сработает? Сначала попробуйте с звуковой частотой., @Gerben

У вас есть самое большее крошечный всплеск попыток после более чем 8 секунд других операций и задержки. Сначала сделайте так, чтобы он передавал непрерывно, и либо используйте оптический прицел, либо проверьте звуковую частоту, как предложил Гербен., @Chris Stratton

На принципиальной схеме показан вывод 3, но ваш код использует вывод 13 - правильно ли вы его подключили? Код в целом имеет мало смысла - проверьте, работает ли он следующим образом: void setup() { pinMode(13, OUTPUT); tone(13, 10000); } void loop() {}., @CharlieHanson


1 ответ


1

Ваша схема драйвера ультразвукового преобразователя работает не очень хорошо. В лучшем случае вы получаете всего несколько милливатт на выходе преобразователя. Ваша схема подает 12 вольт через резистор 2,2 К на преобразователь, а ваш транзистор Q1 просто закорачивает преобразователь.

При просмотре спецификации вашего преобразователя он выглядит как крошечный громкоговоритель, а не пьезоаппарат. Но это нормально.

Попробуйте использовать следующую схему двухтактного драйвера. Я старался, чтобы это было просто, но вам нужно было бы придумать транзистор PNP (в дополнение к вашему существующему транзистору NPN).

Квадратная волна V2 - это ваш 5-вольтовый выход от Arduino.

Кроме того, обратите внимание, что я показал схему драйвера, использующую 5 вольт, а не 12 вольт. Используя эту схему, если вы используете питание 12 вольт, выход не становится более мощным и просто вызывает больший нагрев транзисторов.

ПРАВКА 1 : ВАЖНО : Не оставляйте свой выходной вывод в высоком состоянии. Это включает транзистор Q1 и вызывает постоянный ток в преобразователе. Чтобы облегчить это, вставьте конденсатор емкостью 47 мкФ последовательно с преобразователем.

ПРАВКА 2 : Изменена схема, чтобы включить выходной конденсатор.

,

Какой конденсатор я должен использовать для этого? Электролитический или поляризационный конденсатор?, @user13535

Вы можете использовать электролитическое. Подключите позитив к эмиттеру транзисторов., @Marla

какова функция конденсатора 47uF? этот конденсатор функционирует как фильтр высоких частот? Спасибо, @user13535

Для блокировки постоянного тока от преобразователя., @Marla