Устройства на микроконтроллере pic16f628a своими руками схемы

Устройство управления светодиодом

Схема:

![Схема управления светодиодом на PIC16F628A](https://raw.githubusercontent.com/DIYProjectsIO/pic16f628a-projects/master/led-control/led-control.png)

Компоненты:

* Микроконтроллер PIC16F628A
* Резистор 1 кОм
* Светодиод
* Источник питания 5 В

Код:

«`c
include

void main() {
TRISB = 0; // Настроить порт B как выход
while (1) {
PORTB = 1; // Включить светодиод
__delay_ms(1000); // Ожидание 1 секунды
PORTB = 0; // Выключить светодиод
__delay_ms(1000); // Ожидание 1 секунды
}
}
«`

Устройство измерения температуры

Схема:

![Схема измерения температуры на PIC16F628A](https://raw.githubusercontent.com/DIYProjectsIO/pic16f628a-projects/master/temperature-measurement/temperature-measurement.png)

Компоненты:

* Микроконтроллер PIC16F628A
* Датчик температуры LM35
* Резистор 2,2 кОм
* Резистор 10 кОм
* ЖК-дисплей 16×2
* Источник питания 5 В

Код:

«`c
include

void main() {
// Настроить порт B как выход
TRISB = 0;
// Настроить порт D как вход
TRISD = 1;

// Инициализировать ЖК-дисплей
lcd_init();

while (1) {
// Считать значение температуры с датчика LM35
float temperature = adc_read(0) * 5.0 / 1023.0;

// Вывести температуру на ЖК-дисплей
lcd_clear();
lcd_home();
lcd_write_string(«Temperature: «);
lcd_write_float(temperature, 2);
lcd_write_char(‘C’);

__delay_ms(1000); // Ожидание 1 секунды
}
}
«`

Устройство дистанционного управления

Схема:

![Схема дистанционного управления на PIC16F628A](https://raw.githubusercontent.com/DIYProjectsIO/pic16f628a-projects/master/remote-control/remote-control.png)

Компоненты:

* Микроконтроллер PIC16F628A
* Приемник инфракрасных сигналов TSOP1738
* Инфракрасный пульт дистанционного управления
* Резистор 2,2 кОм
* Резистор 330 Ом
* Светодиод
* Источник питания 5 В

Код:

«`c
include

void main() {
// Настроить порт B как выход
TRISB = 0;
// Настроить порт C как вход
TRISC = 1;

// Инициализировать приемник инфракрасного сигнала
ir_init();

while (1) {
// Получить инфракрасный сигнал
unsigned char code = ir_receive();

// Обработать полученный код
switch (code) {
case 0x01: // Кнопка 1
PORTB = 1; // Включить светодиод
break;
case 0x02: // Кнопка 2
PORTB = 0; // Выключить светодиод
break;
}
}
}
«`

Оцените статью
Добавить комментарий