И как всегда небольшой брифинг. Подумал и решил переходить на новый уровень(Level Up), захотелось начать серию статей на тему полезных для радиолюбителя (техника, кому как нравится) приборов и в голову пришла мысль о тестере полупроводников. Скажем, для начала его цель будет отличить диод от транзистора, оповестить, если он будет неисправен и вывести данные о нем. По ходу дела программа будет совершенствоваться и дополнятся. Вначале, в роли индикатора можно выбрать светодиоды, а немного позже разберем, как работать с ЖКИ.
Сегодня мы напишем блок, который будет отвечать за проверку диода. Способ индикации, как самый простой - 2 светодиода, к примеру, зеленый - диод подключен правильно (прямое включение), красный - диод подключен обратно.
Принцип работы простой, как три копейки. Если разделить программу на части, то выйдет что-то типа меняем полярности выводов и смотрим - проходит ток или нет.
Вот схемка:
И вот исходник:
#include <mega8.h>
void main(void)
{
PORTB=0xFF; //порт В на вход
DDRD=0x00;
PORTD=0x00; //порт В на выход, все нули
DDRD=0xFF;
while(PINB.0==1)
{}
if(PINB.0==0)//кнопка замкнута, запуск основной программы
{
PORTD.5=0; //гасим светодиоды, для возможности многократной проверки
PORTD.6=0;
DDRD.0=0;
PORTD.0=1; //нулевой вывод порта D как вход
if(PIND.0==0) //если вход равен нулю(что это значит читайте предыдущую статью) ,тогда…
{PORTD.5=1; //зеленый светодиод горит, 0-анод 1-катод, диод открыт
}
else
{
DDRD.0=1; // нулевой вывод порта D
PORTD.0=0;
DDRD.1=0; //первый вывод порта D на вход
PORTD.1=1;
if(PIND.1==0)
{PORTD.6=1; //горит красный светодиод, 1-анод 0-катод, диод открыт
}
}
}
}
Нет ничего сложного, а продолжение как всегда, следует...