Драйвер двигателя
Управление двигателем реализовано посредством ИК связи (RC-5). Под управлением подразумевается установка скорости (0-15). Сердечком драйвера выступает Attiny45.

Плата нуждается в доработке(по схеме, в районе фильтров) т.к. ошибки устранялись по ходу сборки.
Исходный код для Attiny45:
#define F_CPU 16000000
#include
#include
#include
#include
#include
#include
void delay(unsigned int c)//Функція часової затримки
{
while(c)
{
c--;
_delay_ms(0.01);
}
}
#define nulltime 6000
unsigned int counter = 65000;
void wait_ir_start()// Очікування початку пакету
{
int k=0;
for(;;)
{
delay(1);
if(k < nulltime)k++;
if((0b00001000&PINB)==0&&k < nulltime) k=0; if(k==nulltime && (0b00001000&PINB)==0)break; if(counter>1)counter--;
else if(counter == 1){set_speed(0);counter=0;}
}
}
#define MAX_CAUNT 30
void set_speed(char speed)//Встановлення скважності імпульсів апаратного ШІМ
{
OCR1B = speed;
OCR1C = MAX_CAUNT;
}
void init_timer()//Ініціалізація таймеру
{
TCCR1 = 0b10001001;
OCR1B = 0;
OCR1C = MAX_CAUNT;
GTCCR = 0b01010000;
}
void init_port()//Ініціалізація портів вводу/ виводу
{
DDRB |= (1< DDRB |= (1< DDRB &=~(1<<pb3);
PORTB |= (1<<pb3);
}
void change_led()//Зміна стану світлодіодного індикатора
{
PORTB ^= (1<<pb2);
}
void set_led()//Ввімкнення світлодіоду
{
PORTB |= (1<<pb2);
}
void rst_led()//Вимкнення світлодіоду
{
PORTB &= ~(1<<pb2);
}
int main()//Головна функція програми
{
init_timer();
init_port();
set_speed(15);
unsigned int rx;
unsigned int T;
char adress =0;
signed char tmp[2];
char n = 0;
char data;
char rc =0;
for(;;)
{
rx =0;
T = 0;
wait_ir_start();
for(;;)
{
delay(1);
T++;
if((0b00001000&PINB)!=0)break;
}
for(;;)
{
delay(1);
T++;
if((0b00001000&PINB)==0)break;
}
delay(T/4);
delay(T);
for(char i =0; i!=12; i++)
{
if((0b00001000&PINB)==0)rx |= (1<<(11-i)); delay(T); } adress = (rx>>6)&0b00011111;
if(adress == 25 && (rx&0b0000000000000011) == 0b0000000000000011)
{
data = rx;
data = (data>>2)&0b00001111;//&0b00111111;
set_speed(data);
}
delay(T);
}
}
Скачать печатную плату для Sprint Layout 5.
Скачать исходный код и HEX для Attiny45.
Вращающаяся часть
Вращающаяся часть.Таблица подключения диодов.doc
Вращающаяся часть.Система команд.doc
Скачать исходный код и HEX для Atmega32.
Скачать печатную плату для Sprint Layout 5.
Скачать ПО, исходники(Visual Studio 6) управляющей программы для ПК.
Скачать исходный код bootloader_а и HEX для Atmega32 (не обязательно).
Скачать полезные части диплома.
На любые вопросы с радостью отвечу в блоке комментариев.
На то, что получилось смотрите здесь.





