Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 51
  1. #21
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Buzzer для Ардуино

    С этим кодом динамик еле слышно постоянно пищит. Я хотел громче.
    Транзистор греется.
    Последний раз редактировалось kadushkin; 16.03.2012 в 01:06.

  2. #22
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Buzzer для Ардуино

    Варианта неисправностей
    1-транзистор не правильно подключен
    2-динамик все таки оплавился
    3-Транзистор умер
    4-резистор не 1к , а 1м или в обрыве
    Последний раз редактировалось Chip; 16.03.2012 в 01:20.

  3. #23
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Buzzer для Ардуино

    Разобрался. На схеме ошибка с ЭКБ транзистора.
    Работает, спасибо.

    Chip
    Ты ссылку на голосовое воспроизведение обещал

  4. #24
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

  5. #25
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Buzzer для Ардуино

    Странно:
    void setup()
    {
    pinMode(11, OUTPUT);
    analogWrite(11, 70);
    }

    void loop()
    {
    }
    это работает и пример из ардуино работает.

    а то, что ты дал по ссылке - нет.
    Последний раз редактировалось kadushkin; 16.03.2012 в 21:41.

  6. #26
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Buzzer для Ардуино

    По ссылке я сам проверял, все отлично работает
    Надеюсь ты догадался скачать файлы прикрепленные?
    Последний раз редактировалось Chip; 16.03.2012 в 21:49.

  7. #27
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Buzzer для Ардуино

    Ну конечно скачал файлы, без них бы и не компилировалось

    Подключено к 11ому входу
    Все компилируется, а звука нет

    #include <stdint.h>
    #include <avr/interrupt.h>
    #include <avr/io.h>
    #include <avr/pgmspace.h>
    #include <util/delay.h>
    #include "listen.h"
    #include "repeat.h"
    #include "performed.h"
    #include "sounddata.h"
    #include "song.h"
    #include "ding.h"
    #include "droid.h"
    #include "boing.h"
    #include "go.h"

    int speakerPin = 3;
    int speakerPin2 = 11;
    volatile uint16_t sample=0;
    volatile uint8_t lastSample, FirstSample;
    volatile byte new_data,future_data,old_data;
    volatile byte stat=0;
    unsigned char *wave;
    unsigned int length;

    void setup()
    {
    pinMode(speakerPin, OUTPUT);
    digitalWrite(speakerPin, LOW);
    pinMode(speakerPin2, OUTPUT);
    digitalWrite(speakerPin2, LOW);
    }

    void loop()
    {
    // play_wave((unsigned char *)listen, listen_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)droid, droid_length);
    // _delay_ms(1500);
    //play_wave((unsigned char *)sounddata, sounddata_length);
    // _delay_ms(1500);
    play_wave((unsigned char *)song, song_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)ding, ding_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)boing, boing_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)go, go_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)go, go_length);
    // _delay_ms(1500);
    // play_wave((unsigned char *)repeat, repeat_length);
    // _delay_ms(500);
    // play_wave((unsigned char *)performed, performed_length);
    // _delay_ms(500);


    // if (digitalRead(12)==LOW)
    // {
    // while(digitalRead(12)==LOW) delay(30);
    // wave=(unsigned char *)listen;
    // _delay_us(10);


    }
    //************************************************** ******************
    void play_wave(unsigned char *wave_data, unsigned int wave_length)
    {
    wave=wave_data;
    length=wave_length;
    startPlayback();
    }
    //************************************************** ******************
    ISR(TIMER2_COMPA_vect)
    {
    switch (stat)
    {
    case 0:{
    old_data = pgm_read_byte(&wave[sample]);
    OCR2A = old_data;
    stat=1;
    ++sample;
    if (sample == length) stat=4;
    future_data = pgm_read_byte(&wave[sample]);
    new_data = (old_data+future_data)/2;
    }
    break;
    case 1: {OCR2A=(old_data+new_data)/2; stat=2; }
    break;
    case 2: {OCR2A = new_data; stat=3; }
    break;
    case 3: {OCR2A=(new_data+future_data)/2; stat=0; }
    break;
    case 4: if(lastSample==0) stat=5; else {--lastSample; OCR2A=lastSample;}
    break;
    case 5: stopPlayback();
    break;
    }
    }
    //************************************************** ******************
    void startPlayback()
    {
    sample=0;
    stat=0;

    ASSR |=(1<<AS2);
    TCCR2A |= ((1<<COM2B1)|(0<<COM2B0)|(1<<COM2A1)|(0<<COM2A0)|( 1<<WGM21)|(0<<WGM20));
    TCCR2B = ((0 << CS22) | (0 << CS21) | (1 << CS20) | (0<<WGM22) | (1<<FOC2A) | (1<<FOC2B));

    lastSample = pgm_read_byte(&wave[length-1]);
    FirstSample = pgm_read_byte(&wave[0]);
    TCNT2 = 0;
    TIMSK2|=(1<<OCIE2A);
    sei();

    for (int i=0; i <FirstSample; i++)
    {
    new_data=i;
    stat=2;
    sample = 0;
    _delay_us(10);
    }
    stat=0;
    }

    void stopPlayback()
    {
    TIMSK2&=(0<<OCIE2A);
    TCCR2B &=(0<<CS10);
    }

  8. #28
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Buzzer для Ардуино

    И не будет, зачем ты delay закоментировал. Там же ясно написано что звук воспроизводится в фоновом режиме, то есть без паузы он будет все время начинаться по циклу с начала так и не начавшись
    Не проще было попробовать скетч в том виде как он выложен, и ни чего не править?
    Это все равно что купить автомобиль, открутить у него колеса и пожаловаться что машина не едет
    Последний раз редактировалось Chip; 16.03.2012 в 22:04.

  9. #29
    Продвинутый
    Регистрация
    20.12.2011
    Сообщений
    336
    Вес репутации
    220

    По умолчанию Re: Buzzer для Ардуино

    Все равно не работает, я собственно и менял из-за того, что не работало.

    Может для Меги 2560, что-то другое надо?

  10. #30
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Buzzer для Ардуино

    На Меге этот скетч не будет работать

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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