Jump to content

Search the Community

Showing results for tags 'датчика'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
    • Competition 2019
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 2 results

  1. Привет всем! Прошу помощи в поиске принципиальной схемы *ПРИМИТИВНОГО* - *СОВРЕМЕННОГО*, пожарного извещателя/датчика дыма/индикатора дыма/детектора дыма и т.д... В интернете они есть, но они все базируются на старых компонентах, которые и под заказ не найдешь. Надеюсь кто-нибудь сможет предложить схему которая будет обнаруживать дым,тепло,пламя... на современных компонентах, которые можно найти в любом радио. магазине...
  2. Вопрос к тем кто имел дело с подключением ультразвукового датчика HC-SRC4 к avr микроконтроллеру, именно к attiny 2313a. Подскажите как написать код программы на СИ. В интернете нашел несколько статей для других МК. Пробовал переписать в CodevisionAVR, но ничего так и не заработало. В некоторых случаях датчик издает щелчки некоторое время, но по UART не передает. Из статей понял, что нужно отправлять импульс и ловить его с помощью таймера через внешнее прерывание. После компиляции в Codevision выдает ошибку Warning: overflow is possible in 16 bit multiplication, casting to 'long' may be required, также когда переписывал заметил что в attiny2313a в UART нет регистра URSEL. Вот код, подскажите где неправильно: #define F_CPU 8000000UL #include <tiny2313a.h> #include <delay.h> #include <stdio.h> //определяем ножку Echo #define Echo_PORT PORTD #define Echo_DDR DDRD #define Echo_PIN PIND #define Echo_N 3 //определяем ножку Trig #define Trig_PORT PORTD #define Trig_DDR DDRD #define Trig_PIN PIND #define Trig_N 4 void HC_SRC4_Init(void) { //устанавливаем ножки на выход и вход соответственно Trig_DDR |= 1<<Trig_N; Trig_PORT &= ~(1<<Trig_N); Echo_DDR &= ~(1<<Echo_N); Echo_PORT &= ~(1<<Echo_N); } void HC_SRC4_Send_strob(void) // отправляем 20мкс Строб { Trig_PORT |= 1<<Trig_N; //устанавливаем ЛОГ 1 delay_us(20); //длительность импульса Trig_PORT &= ~(1<<Trig_N); //устанавливаем ЛОГ 0 } void init_interp (void) //разрешение прерываний по любому фронту { MCUCR |=(1<<ISC10); //Прерывание по любому фронту GIFR |= (1<<INT1); //разрешение прерывания на INT0 } #define Start 1 #define Stop 0 unsigned int timer_Start_Stop (char flag) //функция Запуска и Остановки { unsigned int rez; // для хранения тактов if(flag) { TCNT1H = 0; //обнуляем TCNT1L = 0; TCCR1B |=(1<<CS11); //запуск таймера с предделителем 8 } else { TCCR1B &= ~(1<<CS11); //Останавливаем таймер rez = TCNT1H; rez <<= 8; rez |=TCNT1L; return rez; } } //функция преобр числа насчитанных тактов в растояние unsigned int HC_SRC4_Convert_CM (unsigned int N_t) { unsigned long int C; C = N_t * 8; //определяем время импульса C /= 58; // вычисляем расстояние в сантиметрах C +=2; return (unsigned int)C; } unsigned int N_takt=0; interrupt [EXT_INT1] void ext_int1_isr(void) { if(Echo_PIN & (1<<Echo_N)) //если передний фронт timer_Start_Stop (Start); //Запускаем таймер else //если задний фронт N_takt = timer_Start_Stop (Stop); //останавливаем таймер } unsigned int HC_SRC4_Get_CM (void) { HC_SRC4_Send_strob(); //отправляем строб delay_ms(100); return HC_SRC4_Convert_CM(N_takt); //возвращаем значение в СМ } #define BAUD 2400 #define UBRR_VAL F_CPU/16/BAUD-1 void usart_init (unsigned int speed) { // устанавливаем скорость Baud Rate: 4800 UBRRH=(unsigned char)(speed>>8); UBRRL=(unsigned char) speed; UCSRA=0X00; UCSRB|=(1<<TXEN)|(1<<RXEN);// Разрешение работы приемника // Установка формата посылки: 8 бит данных, 1 стоп-бит UCSRC=(1<<UCSZ1)|(1<<UCSZ0); } //функция передачи инф по юарт с контролем флага void Uart_tr (char s[]) { char k; for (k=0;s[k]!=0;k++) { UDR=s[k]; while(!(UCSRA&(1<<TXC)));//ждем окончания передачи UCSRA|=(1<<TXC);//сбрасываем флаг } } // Standard Input/Output functions void main(void) { char Buuf[10]; // Declare your local variables here // Crystal Oscillator division factor: 1 #pragma optsize- CLKPR=(1<<CLKPCE); CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0); #ifdef _OPTIMIZE_SIZE_ #pragma optsize+ #endif // Input/Output Ports initialization // Port A initialization // Function: Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Port D initialization // Function: Bit6=In Bit5=In Bit4=Out Bit3=In Bit2=In Bit1=In Bit0=In DDRD=(0<<DDD6) | (0<<DDD5) | (1<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0); // State: Bit6=T Bit5=T Bit4=0 Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0); // External Interrupt(s) initialization // INT0: Off // INT1: On // INT1 Mode: Any change // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-10: Off // Interrupt on any change on pins PCINT11-17: Off MCUCR=(0<<ISC11) | (1<<ISC10) | (0<<ISC01) | (0<<ISC00); GIMSK=(1<<INT1) | (0<<INT0) | (0<<PCIE0) | (0<<PCIE2) | (0<<PCIE1); GIFR=(1<<INTF1) | (0<<INTF0) | (0<<PCIF0) | (0<<PCIF2) | (0<<PCIF1); // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 2400 UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM); UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); UCSRC=(0<<UMSEL1) | (0<<UMSEL0) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL); UBRRH=0x00; UBRRL=0xCF; HC_SRC4_Init(); usart_init(UBRR_VAL); init_interp(); // Global enable interrupts #asm("sei") while (1) { sprintf(Buuf,"%d ",HC_SRC4_Get_CM()); Uart_tr(Buuf); delay_ms(900); } }
×
×
  • Create New...