Главная » Микроконтроллеры
Призовой фонд
на июль 2019 г.
1. 1000 руб
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 100 руб.
От пользователей

Электронный 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
Ветрогенератор МиниПК MK809V - 4 ядра, Android 4.4.2
вверх