Например TDA7294

Форум РадиоКот • Просмотр темы - Проблемы с УЗ-дальнометром HC-SR04.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб июл 26, 2025 21:09:51

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 15:34:36 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт апр 24, 2009 11:39:16
Сообщений: 2064
Откуда: г.Оренбург
Рейтинг сообщения: 0
Получил эту фигню, значит. А что с ней дальше делать? Правильно, работать с нею надо. Так вот, завел я Echo на INT0, а Trig-3 бит порта D восьмой меги. Проблема в том,что в терминале-почти рандомные числа. Хотя при отключении дальнометра в терминале ничего не выводится. Вывод INT0 подтянут к земле резистором 2.4КОм. Кварц внешний на 10 МГц. Код в IAR-е:
Код:
#include<iom8.h>
#include <intrinsics.h>
#include "CPU_settings.h"
#include "makros.h"
#include "ks0066(wh0802).h"
int t;
char f=0;
int k=0;
unsigned char data;
char h=0;
char y=0;
int main()
{
DDRB=255;
CB(DDRD,2);
SB(DDRD,3);
CB(TCCR0,CS01);
SB(TCCR0,CS00);
CB(TCCR0,CS02);
TCNT0=0;
UCSRB|=(1<<TXEN)|(1<<RXEN)|(1<<RXCIE);
UBRRH=0x00;
UBRRL=64;
SB(MCUCR,ISC00);
CB(MCUCR,ISC01);
asm("sei");
while(1)
{
PORTD_Bit3=1;
delay_us(10);
PORTD_Bit3=0;
SB(GICR,INT0);
while(f!=2);
f=0;
t=int((y*255/10)+(h/10));
t=t/58;
data=(t%100)%10+0x30;
SB(UCSRB,UDRIE);
data=(t%10)+0x30;
SB(UCSRB,UDRIE);
t=0;
data='\n';
SB(UCSRB,UDRIE);
data='\r';
SB(UCSRB,UDRIE);
delay_ms(1000);
}
}
#pragma vector=INT0_vect
__interrupt void INT0_vector(void)//Функция прерывания
{
if((PIND_Bit2==1)&&(f==0))
{
k=0;
h=0;
y=0;
TCNT0=0;
SB(TIMSK,TOIE0);
f=1;
}
else
{
if((PIND_Bit2==0)&&(f==1))
{
h=TCNT0;
y=k;
CB(TIMSK,TOIE0);
f=2;
}
}
}
#pragma vector=TIMER0_OVF_vect
__interrupt void T0_ovf(void)//Функция прерывания
{
k++;
}
#pragma vector =USART_UDRE_vect
__interrupt void UART_UDRE(void)
{
UDR=data;
CB(UCSRB,UDRIE);
}

_________________
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 17:55:40 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт апр 24, 2009 11:39:16
Сообщений: 2064
Откуда: г.Оренбург
Рейтинг сообщения: 0
После долгого мучения дальнометра кое-что выяснилось.... Направил в потолок(метра 2-2.5),в терминалку выводил кол-во переполнений таймера. Хм, оно колебалось от 650 до 100..... Что не так с моим кодом? :(

_________________
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 18:02:06 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Что-то код для меня непонятен. Может на васике пойдет: http://avrproject.ru/publ/kak_podkljuch ... 4/2-1-0-51


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 18:11:41 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт апр 24, 2009 11:39:16
Сообщений: 2064
Откуда: г.Оренбург
Рейтинг сообщения: 0
Видел этот код, но там читерская команда pulsen. :(

_________________
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 18:17:18 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
ну так приспособить ардуиновскую иль самому написать
Код:
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout)
{
   // cache the port and bit of the pin in order to speed up the
   // pulse width measuring loop and achieve finer resolution.  calling
   // digitalRead() instead yields much coarser resolution.
   uint8_t bit = digitalPinToBitMask(pin);
   uint8_t port = digitalPinToPort(pin);
   uint8_t stateMask = (state ? bit : 0);
   unsigned long width = 0; // keep initialization out of time critical area
   
   // convert the timeout from microseconds to a number of times through
   // the initial loop; it takes 16 clock cycles per iteration.
   unsigned long numloops = 0;
   unsigned long maxloops = microsecondsToClockCycles(timeout) / 16;
   
   // wait for any previous pulse to end
   while ((*portInputRegister(port) & bit) == stateMask)
      if (numloops++ == maxloops)
         return 0;
   
   // wait for the pulse to start
   while ((*portInputRegister(port) & bit) != stateMask)
      if (numloops++ == maxloops)
         return 0;
   
   // wait for the pulse to stop
   while ((*portInputRegister(port) & bit) == stateMask) {
      if (numloops++ == maxloops)
         return 0;
      width++;
   }

   // convert the reading to microseconds. The loop has been determined
   // to be 20 clock cycles long and have about 16 clocks between the edge
   // and the start of the loop. There will be some error introduced by
   // the interrupt handlers.
   return clockCyclesToMicroseconds(width * 21 + 16);
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 18:32:13 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт апр 24, 2009 11:39:16
Сообщений: 2064
Откуда: г.Оренбург
Рейтинг сообщения: 0
Вот ардуиновская функция мне не очень-то как раз понятна...

_________________
Steve Jobs. 1955-2011. Мы помним, как ты преобразовал наш мир....


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Вт мар 12, 2013 18:38:51 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
может оформите работу с USART как тут:
http://chipenable.ru/index.php/programm ... terom.html
наверное будет понятнее


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблемы с УЗ-дальнометром HC-SR04.
СообщениеДобавлено: Ср май 20, 2015 07:51:23 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 235
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3863
Откуда: Москва
Рейтинг сообщения: 0
Не стал плодить темы, ситуация следующая: приобрел данный девайс, написал прошивку, подключил, результат нулевой.
Стал разбираться. Похоже у меня проблема с центральной микросхемой, это явно какой-то контроллер с затертой маркировкой, но по распиновке я его идентифицировать не смог. Судя по всему он просто не запускается. Подаю импульс 10мкс - на выходе постоянная "1", на ногах которые идут на кварц - на одной всегда четкий меандр, на второй - ноль, ноги идущие на входы MAX3232 и на ключ ее питания - ноль, соответственно передатчик просто не работает. Питание в норме - 5.05В, пульсации 0.5мВ. Заметил что если подергать конденсаторы в цепи питания, например перевернуть керамику 0.1мкФ (на макетке стоит электролит и керамика), то иногда схема начинает работать, на выходе появляется импульс пропорционально расстоянию до препятствия, на второй ноге кварца появляется "1", и видны импульсы управления и питания max3232. В чем глюк? Может есть какая-то хитрая последовательность в запуске дальномера, о которой не написано в даташите?

PS:Схему нашел, оказывается в центре "одноразовый" контроллер...

_________________
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y