Помогите с реализацией проекта

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а ты наверно снова не так собрал как я писал

kirex
Offline
Зарегистрирован: 17.01.2017

jeka_tm пишет:

а ты наверно снова не так собрал как я писал

С МК на 555, с 555 на пищалку.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а напряжение поднимал?

kirex
Offline
Зарегистрирован: 17.01.2017

jeka_tm пишет:

а напряжение поднимал?

Да, до 12В.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну значит мало. это второй вариант

делай с дросселем и полевиком. но подсоедени правильно конденсатор с2

kirex
Offline
Зарегистрирован: 17.01.2017

jeka_tm пишет:

делай с дросселем и полевиком. но подсоедени правильно конденсатор с2

Конденсатор между + питания и землёй?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ага

kirex
Offline
Зарегистрирован: 17.01.2017

jeka_tm пишет:

ага

Просто вот здесь http://www.radiokot.ru/forum/viewtopic.php?f=25&t=125497&sid=1f5f146ad452e33d6438a24bc389c343

советуют ставить конденсатор для устранения высоковольтных импульсов.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну поставь если так хочешь

kirex
Offline
Зарегистрирован: 17.01.2017
Собрал всё по следующей схеме:
Всё работает, на выходе чистенькая синусоида. Полевик взял IRFBC40, т.к. 2N7000 грелся. Единственное, почему-то с увеличением частоты падает напряжение на выходе. Если при 20кГц Vpp=16В, то при 30кГц Vpp=13В, при 40кГц Vpp=9В, а при 50кГц Vpp=7В. Ток при этом наоборот возрастает. 
С чем это связано?
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

у тебя почти 2 контура получилось

kirex
Offline
Зарегистрирован: 17.01.2017

jeka_tm пишет:

у тебя почти 2 контура получилось

И что? Объясните пожалуйста.

kirex
Offline
Зарегистрирован: 17.01.2017

dimax пишет:

Да, и кстати частоты 15-55 кГц под тактовую 9.6Мгц я вам дал точные в скетче. Если протеус показывает другую частоту -это проблема протеуса.

Замерял в реале осциллографом, всё также как и в протеусе. И ещё, куда в вашем коде вставить мигание светодиода?

ledon;
_delay_ms(500);
ledoff;

Т.е. чтоб светодиод мигал один раз в начале каждого цикла.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

kirex пишет:

jeka_tm пишет:

у тебя почти 2 контура получилось

И что? Объясните пожалуйста.

и фильтр нижних частот LC. гугли колебательный  контур и LC фильтр

kirex
Offline
Зарегистрирован: 17.01.2017

Пока остановился на L1-560мкГ, а L2-300мкГ. Сигнал выглядит как что-то среднее между синусоидой и треугольником. Амплитуда начинает падать с 38кГц.

Кстати испробовал на соседском коте. Кот сидел на руках у хозяина в 3-х метрах от меня, после включения прибора кошак газу дал как самолёт, аж хозяину руку поцарапал.

kirex
Offline
Зарегистрирован: 17.01.2017

dimax пишет:

Вот накатал продвинутый вариант для тини13.  

#include <util/delay.h>
volatile uint16_t dds_shag= 1233; //15kHz
uint16_t akkum;
void setup() {
DDRB|=(1<<3);
TCCR0A=1<<WGM01; //CTC mode
OCR0A=170; TIMSK0=1<<OCIE0A; 
TCCR0B=(1<<CS02)|(1<<CS00); //делитель 1024
while(1){
  (akkum+=dds_shag)&(1<<15) ? PORTB|=1<<3 : PORTB&=~(1<<3);
  }
}

ISR (TIM0_COMPA_vect){ 
dds_shag++;
if (dds_shag>4521) { //если дошло до 55кГц, то
             dds_shag= 1233; //установить 15кГц
             PORTB&=~(1<<3); //отчистить порт
           CLKPR= 1<<CLKPCE; CLKPR = 8;  // CLK/256
         _delay_ms(200); 
        CLKPR= 1<<CLKPCE;  CLKPR = 0; 
     }
}
void loop(){}

Я извиняюсь, куда в этом коде вставить мигание светодиода?

#define ledon PORTB |= 1<<PB1
#define ledoff PORTB &= ~1<<PB1

ledon;
_delay_ms(500);
ledoff;

Т.е. чтоб светодиод мигал один раз в начале каждого цикла.