Блок управления стиральной машиной
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение
высшего профессионального образования
«Алтайский государственный технический университет им. И.И. Ползунова»
Бийский технологический институт (филиал)
Факультет ИТАУ
Кафедра МСИА
Блок управления стиральной машиной
Курсовая работа
по курсу «Применение микропроцессоров в технике и технологии»
Выполнил: студент гр. ИСТ-52 Гаськов М.Б.
Проверил: асс. Абраменко Д.С.
асс. Лебедев А.Н.
БИЙСК 2008
СОДЕРЖАНИЕ
Введение…………………………………………………………
1 История стиральных машин……………………………….……… 4
1.2 Стирка под контролем
2 Аппаратная реализация…………………………………………… 7
2.1 Описание микроконтроллера……………………………………
2.2 Описание датчика температуры………………………………….. 9
2.3 Описание датчика уровня воды………………………………..…10
2.4 Структурная схема………………………………………………… 12
3 Алгоритм работы программы.……………………………………. 13
Заключение …………………………………………………
Используемая литература…………………
Приложение А………………………………………………
Приложение Б………………………………………………
ВВЕДЕНИЕ
Цель курсовой работы – разработать структурную схему блока управления стиральной машины, которая должна иметь два режима стирки (с отжимом и без отжима) две кнопки, включающие режимы стирки, два светодиода для индикации этих режимов, а так же два семисегментных индикатора показывающих время стирки.
Было предложено использовать микроконтроллер ATmega48, среду разработки AVR Studio и язык программирования C .
В курсовой работе должны использоваться датчики температуры с аналоговым выходом, способные измерять температуру в диапазоне от 0 до +90 °С, а также датчик уровня воды.
1. История стиральных машин
Основные этапы эволюции стиральных машин:
- 1920-е годы - деревянные баки, обитые листовой медью, уступают место эмалированным стальным бакам;
- 1930-е годы - в машинах появляются механические таймеры и сливные насосы с электрическим мотором;
- 1949 г. - создано программное устройство для стиральной машины (программы набиваются на перфокартах);
- Выпущена первая в США автоматическая стиральная машина;
- начало 1950-х годов - машины обретают функцию отжима (центрифугирование);
- 1951 г. - первая автоматическая стиральная машина выпущена в Европе;
- 1978 г. - создана стиральная машина с системой управления на основе микропроцессора;
- середина 1990-х годов - разработаны стиральные машины с системой управления, работающей на принципах «нечеткой логики» (Fuzzy Logic) и позволяющей реализовать огромное число программ стирки;
- начало XXI века - стиральные машины интегрируются во внутриквартирную сеть бытовых приборов «интеллектуального дома» с возможностью доступа к сети Интернета.
Шаги технического прогресса в сфере стирки белья ничуть не менее масштабны, чем в области мобильной телефонии, где фирмы-производители непрерывно поражают новинками потребителей услуг сотовой связи. Просто смена мобильных телефонов происходит гораздо чаще, чем стиральных машин. Но это лишь означает, что, если появилась перспектива покупки новой стиральной машины, нужно быть в курсе новинок, чтобы сделать осознанный и правильный выбор. А выбрать сегодня есть из чего, и в любом вопросе, связанном со стиркой, от системы управления машиной до контроля за утечками воды, имеются новые эффективные решения.
1.2 Стирка под контролем электроники
В стиральных машинах начала XXI века дискретная машинная логика с возможностью выбора, ограниченного вариантами «да» и «нет», «включено» и «выключено», уступила место более нечеткой логике (Fuzzy Logic), в которой многопараметрическому набору исходных данных - сведений о температуре и жесткости воды, степени и характере загрязнений, поступающих от многочисленных сенсоров, - ставится в соответствие массив вариантов действий всех электрических и механических компонентов машины. Сейчас число программ даже не фигурирует в паспортных данных машины: с учетом ввода самим пользователем различных дополнительных опций (увеличить число полосканий, ввести экономичный режим, отменить отжим и т.д.) оно исчисляется многими десятками, если не сотнями.
Микропроцессорные системы управления стиральных машин до предела облегчают пользование машиной. Например, владельцу стиральной машины с системой управления «6-е чувство» достаточно установить селектор на тот тип ткани, которую он собирается постирать. На дисплее он прочтет установленные машиной для этого типа ткани температуру стирки, скорость вращения барабана при отжиме и расчетное время стирки. При желании он может войти в меню и скорректировать параметры, предложенные машиной. Но она не позволит ему, скажем, отжать изделия из шерсти при 1200 об/мин или установить для деликатных тканей режим кипячения.
Электронный интеллект под названием UseLogic®, применяемый в стиральных машинах последнего поколения, анализирует, корректирует и оптимизирует процесс стирки. С помощью невидимых пользователю сенсоров достигается возможность диалогового общения стиральной машины с человеком. Оперативное внесение изменений в программу в соответствии с поступающей от сенсоров информацией позволяет достичь высокой эффективности и отличных результатов стирки, исключив при этом нештатные ситуации.
Работа с такой стиральной машиной напоминает общение с компьютером: при необходимости с сенсорного дисплея машины можно войти в программу Fuzzy Wizard («Помощник»), которая поможет выбрать нужный режим работы машины и наиболее подходящую из дополнительных функций.
Оптический сенсор Clear Water определяет степень загрязненности воды и при необходимости активирует дополнительное полоскание белья. Это особенно важно для детей и людей, чувствительных даже к мельчайшим остаткам моющих средств. Сенсор определяет наличие в воде остатков грязи, стиральных средств, ниток, накипи и определяет, сколько полосканий потребуется для их устранения (машина может производить до трех дополнительных полосканий). Данный сенсор вмешивается в работу машины при выполнении программ «Хлопок», «Синтетика», «Бережная стирка», программы стирки смешанных тканей MIX, программы стирки спортивной одежды SPORT. А вот программы «Шерсть» и «Ручная стирка» дополнительных полосканий не допускают.
В стиральных машинах Gorenje последнего поколения есть еще один очень важный сенсор - избыточного пенообразования. Слишком обильная пена ухудшает результаты стирки. Более того, если пена превысит заданный уровень, она может достигнуть электрических компонентов машины и вызвать короткое замыкание. Сенсор определяет наличие избыточного количества пены, и по его сигналу стиральная машина автоматически снижает уровень пены до нормального. Для этого из бака сливается вода и производится дополнительное полоскание: свежая вода разбавляет лишнюю пену и вымывает ее из бака.
На сегодняшний день уже ни кого не увидишь на речке или озере стирающим бельё. [1]
2. Аппаратная реализация
2.1 Описание микроконтроллера
ATMega48/ATMega88/ATMega168 - 8 битные КМОП микроконтроллеры с AVR RISC архитектурой. Выполняя команды за один цикл, ATMega48/ATMega88/ATMega168 достигают производительности 1 MIPS при частоте задающего генератора 1 МГц, что позволяет разработчику оптимизировать отношение потребления к производительности.
AVR ядро объединяет систему команд и 32 рабочих регистра общего назначения. Все 32 регистра непосредственно связаны с арифметико-логическим устройством (АЛУ), что позволяет получить доступ к двум независимым регистрам при выполнении одной команды. В результате эта архитектура позволяет обеспечить в десятки раз большую производительность, чем стандартная CISC архитектура.
- ATMega48/ATMega88/ATMega168 имеют следующие характеристики:
- 4/8/16 кБ внутрисистемно программируемая Flash память программы;
- 256/512/512 байтная EEPROM память данных;
- 512/1К/1К байтная SRAM (статическое ОЗУ);
- 23 линии ввода - вывода общего применения;
- 32 рабочих регистра общего назначения;
- три гибких таймера/счетчика со схемой сравнения, внутренние и внешние источники прерывания;
- последовательный программируемый USART;
- байт-ориентированный последовательный двухпроводной интерфейс;
- шестиканальный АЦП (8-канальный у приборов в TQFP и MFL корпусах);
- SPI порт и пять программно инициализируемых режима пониженного потребления;
В режиме Idle останавливается
ядро, а SRAM, таймеры/счетчики, SPI порт
и система прерываний
Прибор изготовлен по высокоплотной
энергонезависимой технологии изготовления
памяти компании Atmel. Встроенная ISP Flash
позволяет перепрограммировать
память программы в системе через
последовательный SPI интерфейс программой-
ATMega48/ATMega88/ATMega168 поддерживается различными
программными средствами и
2.2 Описание датчика температуры
В проекте можно использовать датчики температуры LM94021 и LM94022, так как они удовлетворяют требуемому диапазону температур.
LM94021, LM94022 - прецизионные интегральные датчики температур с аналоговыми выходами, которые могут работать при напряжении питания 1,5В. Выходной усилительный каскад соответствует классу АВ, что делает выход датчиков сильным источником втекающего и вытекающего тока для управления нагрузкой. Датчики генерируют напряжение, пропорциональное температуре в широком диапазоне -50°C…+150°C. Малый потребляемый ток делает датчики идеальным выбором для систем с батарейным питанием, а также для приложений температурного контроля общего назначения.
Два логических входа GS1
и GS0 определяют коэффициент передачи
передаточной функции температура-напряжение
При установке минимального коэффициента
передачи (GS1=0, GS0=0) датчики могут работать
при напряжении питания 1,5В, при этом сохранив
диапазон измерения температуры в пределах
рабочего температурного диапазона
Основные характеристики:
- напряжение питания 1,5…5,5 В;
- потребляемый ток 9 и 5,4 мкА;
- нагрузочная способность ±50 мкА;
- четыре выборочных диапазона;
- высокая точность в широком температурном диапазоне -50°C…+150°C;
- выход защищен от короткого замыкания;
- сверхминиатюрный корпус SC70;
Рабочий температурный диапазон -50°C…+150°C .
Типовая схема включения представлена на рисунке 1.
Рисунок 1
Расположение выводов представлено на рисунке 2.
Рисунок 2
[3]
2.3 Описание датчика уровня воды
В данном проекте используется простейший датчик уровня воды ДУ-2, принцип работы которого основан на электропроводности воды, которая в свою очередь, попадая между электродами датчика, приводит в действие исполнительное реле – кнопку. Данный датчик нужен для поддержания заданного уровня воды в резервуаре. Датчик имеет три электрода: электрод нижнего уровня воды, электрод верхнего уровня воды, контролирующий электрод.
Функциональная схема приведена на рисунке 3.
Рисунок 3
Принцип работы датчика.
Когда уровень жидкости
в резервуаре (баке) доходит до нижней отметки, на которой установлен длинный
электрод датчика бака, резервуар автоматически
заполняется до верхнего уровня, на котором
установлен короткий электрод датчика
бака.
Компараторы 1-2 сравнивают значение входного
сигнала с опорным значением и выдают
(в соответствии с условиями блока логики)
сигнал на включение или выключение реле техническая характеристика датчик
уровня воды ДУ-2 приведена в таблице 1.
[4]
Таблица 1 Техническая характеристика ДУ-2
Название характеристики |
значение |
Напряжение питания, В (постоянное напряжение) |
5-12 |
Максимальный ток потребления, мА |
150 |
Тип выходного сигнала |
сухой контакт |
Габаритные размеры, мм |
35х42х30 |
2.3 Структурная схема
Структурная схема приведена на рисунке 4.
Рисунок 4
3 Алгоритм работы программы
Программа начинается с подключения заголовочных файлов avr/signal.h, avr/io.h, avr/interrupt.h, avr/delay.h, stdlib.h. Далее идет описание глобальных переменных и констант:
- table массив из 10 элементов типа char, необходим для правильного отображения цифр на семисегментных индикаторах;
- t - целочисленная переменная для хранения значения температуры;
- k - целочисленная переменная для хранения числа полученного из АЦП;
- low - переменная типа char для хранения единиц времени;
- high - переменная типа char для хранения десятков времени;
- T- целочисленная переменная для задания температуры стирки;
- Time- переменная типа char для задания времени стирки;
- Rejim- переменная типа char для хранения режима стирки.
В основном блоке программы
сначала запрещаются все
Датчик температуры может работать с диапазоном температур от -50 до +150. Следовательно, для нахождения температуры используется формула (1):
Когда температура найдена, необходимо отделить десятки и единицы значения. Для нахождения единиц числа необходимо найти остаток от деления на 10 от абсолютного значения температуры. Для нахождения десятков необходимо абсолютное значение температуры поделить нацело на 10.
Далее настраивается направление работы портов. Порты микроконтроллера могут быть настроены как для ввода, так и для вывода информации. Порты B и D подключаются к семисегментным индикаторам для отображения цифр, следовательно, они настраиваются на вывод информации. Для этого в DDRB и DDRD выставляем все единицы, а входы порта С, порта В7 и порта D7 настраиваются на ввод информации.
После срабатывания одной из кнопок, которым соответствуют порты: порт С(2) и порт С(3), включается клапан набора воды (порт С(6)). После чего начинается опрос датчика уровня воды подключенного к порту С(0), как только уровень воды достигнут отключается клапан заливки, включается нагреватель, и начинается опрос датчика температуры подключенного к порту АЦП (ADC(0)).
Температура полученная с датчика сравнивается с заданной температурой как только температура достигает нужного значения отключается нагреватель, включается электродвигатель (порт В(7)) и начинается отсчет времени, значение которого подается на семисегментные индикаторы подключенные к портам В и D.
По окончании работы таймера, отключается электродвигатель и включается клапан слива воды (порт D(7)), опрашивается датчик уровня воды как только значение датчика будет соответствовать 1 в порту С(6) происходит сравнивание переменной Rejim если ее значение не равно 2 работа программы заканчивается иначе программа продолжается с момента включения электродвигателя, где переменной Rejim присваивается значение 0 после повторного сравнения программа заканчивается.
ЗАКЛЮЧЕНИЕ
В ходе выполненной работы была разработана структурная схема блока управления стиральной машиной, имитирующий работу управляющего устройства. По данному алгоритму была реализована программа на языке C в среде AVR Studio. В качестве основы использовался микроконтроллер Atmega48. Алгоритм описан в виде блок-схемы в приложениях А. Текст программы приведён в приложении Б.
Используемая литература
- Каталог познавательных статей «История развития стиральных машин». http://www.bcetyt.ru/house/
technics/large/stiralka.html [Электронный ресурс] - Shop CHIPDOC «Справочная литература по микроэлектронике». ATmega48. http://shop.chipdoc.ru/php/ish
op/shop1.phtml?parentid=13&mod e=2&prodid=333&search=&prec=0& into=0&typepoisk=&sort=0&start =0 [Электронный ресурс] - RadioRadar.net «Прецизионные датчики температ
уры». http://www.radioradar.net/ radiofan/security_devices/ kodzam.html [Электронный ресурс] - Датчики Siblink «Датчики уровня». http://portal.pushok.ru/catalo
g/datch [Электронный ресурс]
ПРИЛОЖЕНИЕ А
Блок – схема работы блока управления стиральной машиной
ПРИЛОЖЕНИЕ В
Исходный текст программы
#include<avr/signal.h>
#include<avr/io.h>
#include<avr/interrupt.h>
#include<avr/delay.h>
#include<stdlib.h>
/*Массив для записи в порты семисегментных
индикаторов чисел от 0 до 9*/
const unsigned char table[10] = {0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111};
/* t - температура
k - значение, считанное из регистра АЦП
low и high - младная и старшая часть числа,
отображаемого на индикаторах
*/
int T, t ,i, k;
char low , high;
char s,time;
char rejim, sl;
/*Процедура обработки прерывания АЦП*/
ISR(SIG_ADC)
{
//считываем значение из АЦП в переменную
k = ADC;
/*В датчике температуры
температура прямо
напряжению, учитывая, что датчик работает с диапазоном
температур от 0 до 100 получим
формулу для нах-я температуры*
t = k*200/(1024);
if(t>=T) // условие для температуры
{
PORTC&=~_BV(7); //выключаем обогреватель
TCCR1B|=_BV(CS10);// Авторизация времени стирки
PORTB = table[2];
PORTD = table[0];
s=0;
time = 20;
PORTB|=_BV(7); // Включаем двигатель стиральной машины
ADCSRA&=~_BV(ADEN);
ADCSRA&=~_BV(ADSC);
}
//Разрешаем преобразования в АЦП
ADCSRA|=_BV(ADSC);
};
ISR (SIG_OVERFLOW0)
{
/* Залив и нагрев воды*/
if(sl==0){
if(bit_is_clear(PORTC,6))
{
PORTC|=_BV(7); //включаем обогреватель
PORTC&=~_BV(0); // Прекращаем залив воды
TCCR0B&=~_BV(CS00); // отключаем таймер
sl=1;
/*Разрешаем преобразования в АЦП*/
ADCSRA|=_BV(ADSC);
return;
}
}
/* Слив воды*/
if(sl==1){
if(bit_is_set(PORTC,6))
{
TCCR0B&=~_BV(CS00); // отключаем таймер
sl=0;
PORTD&=~_BV(7); // прекращаем слив
PORTC&=~_BV(4); // откл индикацию режима 1
}
}
ISR (SIG_OUTPUT_COMPARE1A)
{
s++;
if(s==60)
{
s=0;
time--;
low = abs(time)%10;
high =(abs(time)-low)/10;
PORTB = table[high];
PORTD = table[low];
/*отсчёт таймера споследуещем выводом на индикаторы*/
if(time==0)
{
PORTB&=~_BV(7); // откл двигатель
TCCR1B&=~_BV(CS10); //откл Таймер
if(sl==1)
TCCR0B|=_BV(CS00);
PORTD|=_BV(7); // Вкл слив
PORTC&=~_BV(2)&~_BV(3); // откл кнопки
if(rejim==2)
{
/*ставим время отжима*/
rejim = 0;
s=0;
time = 10;
PORTB|=_BV(7);
TCCR1B|=_BV(CS10);
PORTB = table[1];
PORTD = table[0];
/* режим с отжимом */
}
}
}
PORTC&=~_BV(5); // откл индикацию режима 2
}
/*Основной блок программы*/
void main()
{
// Запрещаем все прерывания
cli ();
/*Настраеваем АЦП*/
ADMUX = 0;
ADCSRA|=_BV(ADEN)|_BV(ADIE);
/*Устанавливаем порты на выход
эти порты будут подключены к индикаторам*/
DDRB = 0xFF; //старшая
DDRD = 0xFF; //младшая
DDRC|=_BV(4); //диод 1
DDRC|=_BV(5); //диод 2
//вход
DDRC&=~_BV(2);//кнопка
DDRC&=~_BV(3);//кнопка
DDRC&=~_BV(6);//датчик уровня
DDRC&=~_BV(0); //клапан залива
DDRC&=~_BV(7); //обогреватель
DDRB&=~_BV(7); //двигатель
DDRD&=~_BV(7); //клапан слива
//таймер
TCCR0B&=~_BV(CS01)&~_BV(CS02);
TIMSK0|=_BV(TOIE0);
TCCR1B|=_BV(CS11);
TIMSK1 = _BV(OCIE1A);
TCCR1B = _BV(WGM12);
TCNT1 = 0;
OCR1A = 62500;
/*Разрешаем прерывания*/
sei();
//бесконечный цикл
while(1)
{
if(bit_is_set(PORTC,2))
{
for(i=1; i=30; i++)
{ /*убираем дребизг кнопки*/ }
}
if(bit_is_set(PORTC,2))
{
T = 30;
PORTC|=_BV(0);
TCCR0B|=_BV(CS00);
rejim = 1;
sl = 0;
PORTC|=_BV(4);
/*нажатие кнопки без отжима (режим 1)*/
}
if(bit_is_set(PORTC,2))
{
for(i=1; i=30; i++)
{ /*убираем дребизг кнопки*/ }
}
if(bit_is_set(PORTC,3))
{
T = 40;
PORTC|=_BV(0);
TCCR0B|=_BV(CS00);
rejim = 2;
sl = 0;
PORTC|=_BV(5)
/*нажатие кнопки с отжимом (режим 2)*/
}
}
}

- Блок усиления мощности нелинейного локатора
- Блок цилиндров
- Блок цилиндров ваз 2107
- Блочно-модульное обучение русскому языку
- Блюда в произведениях Н.В. Гоголя
- Блюда и гарниры из грибов
- Блюда из диких животных
- Блок-схема виробництва йогурта резервуарним способом потужністю 8 т на добу
- Блок-схемы
- Блок управления для выполнения операции умножения в АЛУ
- Блок управления для выполнения операций сложения и вычитания в АЛУ
- Блок управления для выполнения операций сложения и вычитания в АЛУ
- Блок управления модулятором добротности твердотельного лазера
- Блок управления стеклоочистителем