Например TDA7294

Форум РадиоКот • Просмотр темы - Вольтметр, который управляет выходным напряжением.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Сб июл 12, 2025 22:31:56

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


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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Вольтметр, который управляет выходным напряжением.
СообщениеДобавлено: Пн июн 12, 2017 13:26:20 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: -5
Рейтинг сообщений: -2
Зарегистрирован: Пн мар 14, 2016 15:38:50
Сообщений: 157
Откуда: Питер
Рейтинг сообщения: 0
Собираю устройство, которое на основании измеренного напряжения своим АЦП на одном из своих портов выдает импульсы широтой, зависящей от измеренного напряжения. Пока результат такой. Зеленым цветом - сигнал на выходе, красным - этот же сигнал после фильтра, в иделе он должен быть прямой.
Изображение

Пока что интересует то, как убрать паузы в выдаче сигнала, чтобы он шел не пакетами, а непрерывно?
Код:
Код:
#include <mega8.h>
#include <stdio.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x40
int s = 1; // переменная для хранения секунд
int o = 1;
int n=0;


unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
interrupt [TIM1_COMPA] void timer1_compa_isr(void) // Обработка прерывания по совпадению
{
    s++; // увеличиваем переменную каждую секунду       
    o++;
        if(o>n) 
            { 
                PORTB.0=1;
            }
        if(o>20)
            {   
                PORTB.0=0;
                o=0; 
            }
                   
    TCNT1=0; //обнуляем таймер
}
void main(void)
{
int adc; //переменная для записи значений АЦП
int v; //переменная для сохранения значения реального напряжения в миливольтах


TCCR1A=0x00; //настройка таймера
TCCR1B=0x05;
TCNT1=0x00; //здесь увеличиваются тики
OCR1A=0x08; //записываем число в регистр сравнения
TIMSK=0x10; //запускаем таймер
#asm("sei")
 
PORTB=0x00;
DDRB=0x01;

ACSR=0x80;
SFIOR=0x00;

ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x81;
while (1)
      {
                adc=read_adc(0); // читаем ацп с порта 0           
                v=adc*5; // ток разряда
               
                 if (v<350) // ток разряда 350 мА
                    {   
                        n=n+1;
                    }
                 if (v>350)
                    {
                        n=n-1;                     
                    }
      };
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вольтметр, который управляет выходным напряжением.
СообщениеДобавлено: Пн июн 12, 2017 17:10:08 
Друг Кота
Аватар пользователя

Карма: 129
Рейтинг сообщений: 2973
Зарегистрирован: Вт дек 20, 2011 12:46:51
Сообщений: 73966
Откуда: Петроград
Рейтинг сообщения: 0
как сложно-то
на выбор
https://www.google.ru/search?client=ope ... gws_rd=ssl

_________________
https://www.int-s.spb.ru
" Можно я лягу?"(C)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вольтметр, который управляет выходным напряжением.
СообщениеДобавлено: Пн июн 12, 2017 20:01:12 
Родился
Аватар пользователя

Зарегистрирован: Пн июн 05, 2017 18:07:13
Сообщений: 15
Рейтинг сообщения: 0
Я своих программ немного написал, а в чужих еще не разбирался...
Вопрос 1. Какая тактовая?
1.1 Действительно Тактовая / (1024[ПредДелитель] * 8 ) -> Это интервал 1 Секунда?
Или "секунда" (в комментариях) это просто "каждое прерывание"?
Есть у меня версия, но нужно услышать тактовую...

А вообще, наверное, правильнее было бы, не создавать собственный программный ШИМ, а использовать аппаратный, меняя его скважность, относительно измеренного, с помощью АЦП, напряжения ...
И ресурсов меньше уйдёт, и программа, в конце концов, будет более логичной...

ЗЫ На самом деле аппаратный ШИМ это просто https://avrlab.com/node/90

Добавлено after 32 minutes 57 seconds:
как сложно-то
на выбор

Можно предположить, что человек будет заряжать аккумуляторы.
Можно предположить, что хочет сделать индикацию тока.
Можно предположить, что захочет сделать многозонную (по току) зарядную характеристику.
Также, можно допустить, что сделает, программно, выбор тока, в зависимости от модели аккума...
Можно предположить, что запилит разряд, с измерением ёмкости...
Это всё шутки, на самом деле сам такую чушь хочу разработать для тренировки (знаю, что есть готовые)...

Если так, то данный код не безсмысленен... :)


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

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


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

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


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

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


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