если вместо транзисторов стоят инверторы - всё работает, а с ними - везде горят восьмёрки
я уже и резисторы пихал, и подтягивам выводы к + или -, ничего не помогает
котМатроскин писал(а):если вместо транзисторов стоят инверторы - всё работает, а с ними - везде горят восьмёрки
А "инверторы" как стоят?
"горят восьмёрки" это открытый транзистор. (или неправильно установленный)
В протеусе то же самое, или это вы схему в потеусе эмулируете?
Схема не полностью видна... Однако, если предположить, что у вас общий провод на схеме - это минус, то транзисторы включены правильно, а индикаторы с общим катодом (ОК). Транзисторы управляются логической единицей (высоким уровнем, резисторы в базах все равно надо), а на сегменты индикаторов тоже подаются высокие логические уровни (логические единицы). Все должно работать.
А чего у вас не по четыре транзистора? один сегмент не используется?
З.Ы. Ищите ошибку в программе. )
З.З.Ы. Если индикаторы с общим анодом (ОА), то транзисторы не правильно стоят.
Что значит на базу и на коллектор?
Номиналы обычно рассчитывают исходя из типа ваших транзисторов. Если много практического опыта в конструировании устройств, то некоторые номиналы подбирают чисто с потолка. Т.е. мастер уже знает, сколько примерно должно стоять в той или иной цепи.
З.Ы. Если вы эмулируете схему в Протеусе, то по сути там не важно какие резисторы, и есть ли они в ключевых каскадах...
Если схема собрана в железе, то там см. выше.
Где-то в Инете видел расчеты транзисторных ключей, http://roboforum.ru/forum11/topic3323.html
Работает в схеме (железе) или Протеусе??
Я почему спрашиваю?, потому что в Протеусе теоретически вообще без резисторов может работать, а в схеме может выйти из строя...
ZМудрость(Опыт и выдержка) приходит с годами.
Все Ваши беды и проблемы, от недостатка знаний.
Умный и у дурака научится, а дураку и ..
Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
воюю с ацп, постоянно показывает муть, а при замыкании AREF на 0 - показывает 1023
на avcc ни какой реакции Спойлер#include <mega8.h>
#include <delay.h>
void ind (unsigned char chislo) {
PORTB=digit[chislo];
delay_ms (3);
};
void gen (unsigned char pin) {
if (pin==1) {PORTD=0b10000000;PORTC.5=0;};
if (pin==2) {PORTD=0b01000000;PORTC.5=0;};
if (pin==3) {PORTD=0b00100000;PORTC.5=0;};
if (pin==4) {PORTD=0b00010000;PORTC.5=0;};
if (pin==5) {PORTD=0b00001000;PORTC.5=0;};
if (pin==6) {PORTD=0b00000100;PORTC.5=0;};
if (pin==7) {PORTD=0b00000010;PORTC.5=0;};
if (pin==8) {PORTD=0b00000001;PORTC.5=0;};
if (pin==9) {PORTC.5=1;PORTD=0b00000000;};
};
#define ADC_VREF_TYPE 0x40
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
котМатроскин писал(а):воюю с ацп, постоянно показывает муть, а при замыкании AREF на 0 - показывает 1023
на avcc ни какой реакции
AREF - это "опорное напряжение" АЦП, "выход" АЦП- это отношение измеряемого напряжения к опорному, умноженное на 1024, если вы FREF сажаете на "НОЛЬ", то у вас в любом случае на выходе АЦП будет 1023 (он просто больше показать не может), то же самое- 1023 будет в том случае, если напряжение на входе будет выше AREF.
К тому же AREF может вырабатываться внутренним источником- на внешний надо "переключать" К тому же, внешнее напряжение AREF для Мега8 не может быть меньше 2,00 вольта (таблица 103, ADC Characteristics - VREF - Reference Voltage min - 2.0 V )
А AVCC это питание "аналоговой части"- должно быть такое же, как и Vcc, только рекомендуется через RC или LC цепь..
Дык он там всегда будет, ибо ошибка оцифровки + шум... Можно только фильтровать -- должно помочь. Например, загнать в кольцевой буфер мне советовали в своё время. Просто и эффективно.