Compare commits
6
Commits
f90e6f1b09
..
24V
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1137648b3a | ||
|
|
b16f15bf74 | ||
|
|
6b22cb9585 | ||
|
|
149e145508 | ||
|
|
2538fd2af1 | ||
|
|
a205fe6f1a |
Binary file not shown.
|
After Width: | Height: | Size: 888 KiB |
Executable
+21
@@ -0,0 +1,21 @@
|
|||||||
|
Перечень элементов
|
||||||
|
|
||||||
|
C1 = 1uF 50V (SMD1206)
|
||||||
|
C2 = 0.1uF 50V (SMD1206)
|
||||||
|
C3 = 10uF 35V (C)
|
||||||
|
C4 = 0.1uF 50V (SMD1206)
|
||||||
|
C5 = 0.1uF 50V (SMD1206)
|
||||||
|
C6 = 0.01uF 50V (SMD1206)
|
||||||
|
C7 = 0.01uF 50V (SMD1206)
|
||||||
|
C8 = 100uF 6V3 (C)
|
||||||
|
|
||||||
|
DD1 = ATtiny13A (SO-8)
|
||||||
|
|
||||||
|
R1 = 1 (SMD1206)
|
||||||
|
R2 = 220 (SMD1206)
|
||||||
|
R3 = 4k7 (SMD1206)
|
||||||
|
|
||||||
|
VD1 = 33V 1W (SMD)
|
||||||
|
VD2 = 5V1 0.5W (SMD)
|
||||||
|
|
||||||
|
VR1 = 7805 (D-PAK)
|
||||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -7,175 +7,175 @@
|
|||||||
#define OmegaPort PORTB
|
#define OmegaPort PORTB
|
||||||
#define OmegaPINnum PB0
|
#define OmegaPINnum PB0
|
||||||
|
|
||||||
#define imp 25
|
#define imp 25 // Количество импульсов в коде
|
||||||
#define impHi 93
|
#define impHi 93 // Длительность высокого уровня импульса в микросекундах
|
||||||
#define impLo0 399
|
#define impLo0 399 // Длительность низкого уровня импульса 3-го типа в микросекундах
|
||||||
#define impLo1 206
|
#define impLo1 206 // Длительность низкого уровня импульса 2-го типа в микросекундах
|
||||||
#define impLo2 107
|
#define impLo2 107 // Длительность низкого уровня импульса 1-го типа в микросекундах
|
||||||
|
|
||||||
const PROGMEM uint8_t code1[imp] = {0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2};
|
const PROGMEM uint8_t code1[imp] = {0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}; // Комбинация импульсов 1-го кода
|
||||||
const PROGMEM uint8_t code2[imp] = {0,1,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,1,1,2,1,2,2,2,2};
|
const PROGMEM uint8_t code2[imp] = {0,1,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,1,1,2,1,2,2,2,2}; // Комбинация импульсов 2-го кода
|
||||||
const PROGMEM uint8_t code3[imp] = {0,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2};
|
const PROGMEM uint8_t code3[imp] = {0,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2}; // Комбинация импульсов 3-го кода
|
||||||
const PROGMEM uint8_t code4[imp] = {0,2,2,1,1,2,2,2,2,1,2,1,1,2,1,2,2,1,2,2,1,1,1,2,2};
|
const PROGMEM uint8_t code4[imp] = {0,2,2,1,1,2,2,2,2,1,2,1,1,2,1,2,2,1,2,2,1,1,1,2,2}; // Комбинация импульсов 4-го кода
|
||||||
const PROGMEM uint8_t code5[imp] = {0,1,1,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2};
|
const PROGMEM uint8_t code5[imp] = {0,1,1,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2}; // Комбинация импульсов 5-го кода
|
||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 1
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
//******************************************************************* 1
|
//******************************************************************* Передаем 1-й код
|
||||||
OmegaDDR |= (1<<OmegaPINnum);
|
OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_ms(3);
|
_delay_ms(3); // Небольшая пауза
|
||||||
for(uint8_t i = 0; i < imp; i++)
|
for(uint8_t i = 0; i < imp; i++) // Цикл передачи
|
||||||
{
|
{
|
||||||
if(pgm_read_byte(&code1[i]) == 1)
|
if(pgm_read_byte(&code1[i]) == 1) // Если импульс 1-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo1);
|
_delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code1[i]) == 2)
|
else if(pgm_read_byte(&code1[i]) == 2) // Если импульс 2-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo2);
|
_delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code1[i]) == 0)
|
else if(pgm_read_byte(&code1[i]) == 0) // Если импульс 3-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo0);
|
_delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
_delay_ms(100);
|
_delay_ms(100); // Задержка перед передачей следующего кода
|
||||||
|
|
||||||
//******************************************************************* 2
|
//******************************************************************* Передаем 2-й код
|
||||||
OmegaDDR |= (1<<OmegaPINnum);
|
OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_ms(3);
|
_delay_ms(3);
|
||||||
for(uint8_t i = 0; i < imp; i++)
|
for(uint8_t i = 0; i < imp; i++) // Цикл передачи
|
||||||
{
|
{
|
||||||
if(pgm_read_byte(&code2[i]) == 1)
|
if(pgm_read_byte(&code2[i]) == 1) // Если импульс 1-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo1);
|
_delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code2[i]) == 2)
|
else if(pgm_read_byte(&code2[i]) == 2) // Если импульс 2-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo2);
|
_delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code2[i]) == 0)
|
else if(pgm_read_byte(&code2[i]) == 0) // Если импульс 3-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo0);
|
_delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
_delay_ms(100);
|
_delay_ms(100); // Задержка перед передачей следующего кода
|
||||||
//******************************************************************* 3
|
//******************************************************************* Передаем 3-й код
|
||||||
OmegaDDR |= (1<<OmegaPINnum);
|
OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_ms(3);
|
_delay_ms(3);
|
||||||
for(uint8_t i = 0; i < imp; i++)
|
for(uint8_t i = 0; i < imp; i++) // Цикл передачи
|
||||||
{
|
{
|
||||||
if(pgm_read_byte(&code3[i]) == 1)
|
if(pgm_read_byte(&code3[i]) == 1) // Если импульс 1-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo1);
|
_delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code3[i]) == 2)
|
else if(pgm_read_byte(&code3[i]) == 2) // Если импульс 2-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo2);
|
_delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code3[i]) == 0)
|
else if(pgm_read_byte(&code3[i]) == 0) // Если импульс 3-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo0);
|
_delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
_delay_ms(120);
|
_delay_ms(120); // Задержка перед передачей следующего кода
|
||||||
//******************************************************************* 4
|
//******************************************************************* Передаем 4-й код
|
||||||
OmegaDDR |= (1<<OmegaPINnum);
|
OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_ms(3);
|
_delay_ms(3);
|
||||||
for(uint8_t i = 0; i < imp; i++)
|
for(uint8_t i = 0; i < imp; i++) // Цикл передачи
|
||||||
{
|
{
|
||||||
if(pgm_read_byte(&code4[i]) == 1)
|
if(pgm_read_byte(&code4[i]) == 1) // Если импульс 1-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo1);
|
_delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code4[i]) == 2)
|
else if(pgm_read_byte(&code4[i]) == 2) // Если импульс 2-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo2);
|
_delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code4[i]) == 0)
|
else if(pgm_read_byte(&code4[i]) == 0) // Если импульс 3-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo0);
|
_delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
_delay_ms(200);
|
_delay_ms(200); // Задержка перед передачей следующего кода
|
||||||
//******************************************************************* 5
|
//******************************************************************* Передаем 5-й код
|
||||||
OmegaDDR |= (1<<OmegaPINnum);
|
OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_ms(3);
|
_delay_ms(3);
|
||||||
for(uint8_t i = 0; i < imp; i++)
|
for(uint8_t i = 0; i < imp; i++) // Цикл передачи
|
||||||
{
|
{
|
||||||
if(pgm_read_byte(&code5[i]) == 1)
|
if(pgm_read_byte(&code5[i]) == 1) // Если импульс 1-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo1);
|
_delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code5[i]) == 2)
|
else if(pgm_read_byte(&code5[i]) == 2) // Если импульс 2-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo2);
|
_delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
else if(pgm_read_byte(&code5[i]) == 0)
|
else if(pgm_read_byte(&code5[i]) == 0) // Если импульс 3-го типа
|
||||||
{
|
{
|
||||||
OmegaPort &= ~(1<<OmegaPINnum);
|
OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
|
||||||
_delay_us(impLo0);
|
_delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
|
||||||
OmegaPort |= (1<<OmegaPINnum);
|
OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
|
||||||
_delay_us(impHi);
|
_delay_us(impHi); // Выжидаем длительность высокого уровня импульса
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OmegaDDR &= ~(1<<OmegaPINnum);
|
OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
|
||||||
_delay_ms(200);
|
_delay_ms(200); // Задержка перед новым циклом
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user