Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на май 2024 г.
1. 1000 руб
Сайт Паяльник

Похожие статьи:


Реклама ⓘ

Электронный USB счетчик на AVR ATtiny25

Проект представляет собой счетчик с отображением данных на LCD-экранчике и передачей данных через USB-интерфейс. Я к примеру использовал данное устройство как счетчик посещений для вебсайта.

Электронный USB счетчик посещений на AVR ATtiny25

В проекте используется микроконтроллер AVR ATtiny25, в качестве драйвера LCD-дисплея используется микросхема MAX7219. Для отображения данных используется обычный 7-ми сегментный индикатор на 8 знакомест.
Принципиальная схема устройства приведена на рисунке ниже:

Принципиальная схема USB счетчика

 

Для связи микроконтроллера и микросхемы MAX7219 используется всего 3 линии. Программа для контроллера написана на AVR-GCC и основана на коде EasyLogger. Также, Christian Starkjohann разработал отличный программный USB-драйвер который называется AVR-USB и с помощью которого реализуется поддержка USB 1.1 (low speed) для атмеловских AVR микроконтроллеров. Т.о. необходимость в специальной USB-микросхеме (к примеру FT232) отпадает, все реализуется программно. Для питная м/с MAX7219 требуется источник питания мощностью не менее 300мА и напряжением 9-12В. Микроконтроллер IC3 питается от USB-шины.

Проект на макетной плате

Для экономии памяти микроконтроллера (2к в ATtiny25), MAX7219 использовался режим decode-mode (см. даташит). В этом режиме в памяти МК не нужно хранить таблицу шрифтов для семисегментного индикатора.
Код функции usbFunctionSetup для приема данных от МК:

USB_PUBLIC uchar usbFunctionSetup(uchar data[8])
{
 static uchar replyBuf[2];
 uchar Dlen;
 usbMsgPtr = replyBuf;
 switch (data[1]) {
   case 0: // data format => data[3]:data[2]:data[5]:data[4]
   MAX7219_DisplayChar(1,data[3] >> 4 & 0x0F); // display digit 0
   MAX7219_DisplayChar(2,data[3] & 0x0F); // display digit 1
   MAX7219_DisplayChar(3,data[2] >> 4 & 0x0F); // display digit 2
   MAX7219_DisplayChar(4,data[2] & 0x0F); // display digit 3
   MAX7219_DisplayChar(5,data[5] >> 4 & 0x0F); // display digit 4
   MAX7219_DisplayChar(6,data[5] & 0x0F); // display digit 5
   MAX7219_DisplayChar(7,data[4] >> 4 & 0x0F); // display digit 6
   MAX7219_DisplayChar(8,data[4] & 0x0F); // display digit 7
   Dlen = 0;
   break;
   case 1:
   MAX7219_Clear();
   Dlen=0;
   break;
   case 2:
   MAX7219_Init();
   Dlen=0;
   break;
   default:
   Dlen=0;
   break;
 }
 return Dlen;
}

Программа на ПК

Программа для компьютера написана на Delphi 6 с использованием компонента Indy 10. Для данной версии необходима специальная библиотека LibUSB-Win32, которая является портированной версией libusbдля Windows-систем. Библиотека значительно упрощает пользовательскому приложению доступ к USB-устройству. Также, для delphi использованы компоненты CoolTrayIcon и TextTrayIcon. Компоненты позволяют сворачивать приложение в трей, как это показано на картинке ниже.

Данное приложение каждые 10 секунд считывает данные с текстового файла hits.txt (счетчик посещений) и затем перенаправляет данные на USB.

Программа на ПК

Скрипт на вебсервере

На вебсервере используется файл hits.txt, в который записывается количество посещений странички. Файл должен быть доступен для записи (права 0777). Для записи количества посещений используется простенький PHP-скрипт:

 $hitfile = $_SERVER['DOCUMENT_ROOT']."/counter/hits.txt";
 $hits = @ file_get_contents($hitfile);
 file_put_contents($hitfile,$hits+1,LOCK_EX);
 echo ($hits+1); 	// используется для отладки

Для прошивки контроллера я использовал AVR ISP программатор и программу PonyProg

Оригинал статьи

Прикрепленные файлы:

Теги:

Колтыков А.В. Опубликована: 2011 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (0) | Я собрал (0) | Подписаться

Статью еще никто не комментировал. Вы можете стать первым.
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Автомобильный GPS-трекер с GSM/GPRS и дистанционным управлением Паяльная станция Hakko 936
вверх