Броячи. Вариант 4 - Енергонезависим брояч на готова продукция

вариант

Всичко най-хубаво. В тази статия ще се запознаем с прототипа на брояча на готовата продукция. Прототипът реализира възможност за запис на преброения брой продуктови единици в енергонезависима памет EEPROM. И така, какви компоненти използвахме в това изпълнение? Нека ги изброим, те са:

  1. Базиран на Arduino Nano платка с ATMEGA 328P чип
  2. I/O безжичен щит за Nano
  3. Акрилни щитове за щита (вид тяло)
  4. LCD1602 дисплей с I2C конвертор
  5. Два тактични бутона (зелен и червен)
  6. Свързващи проводници
  7. Правилна библиотека за работа с LCD1602 + I2C
  8. Желанието да направите интересно и полезно нещо със собствените си ръце

Като цяло можете да вземете всяка платка Arduino като основа, било то Mega, UNO и т.н. Основното условие е наличието на енергонезависима EEPROM памет в чипа. Какво друго? Мисля, че схемата тук няма да е излишна.

енергонезависим

  • Зелен бутон. Проектиран да симулира сензор, през който преминава броеният продукт. Вместо бутон можете да използвате всеки друг сензор (ние лично използвахме бутон - просто поради липса на сензора, от който се нуждаехме), независимо дали е индуктивен, капацитивен или дори контактен. Всичко ще зависи от вида на произвеждания продукт, тук е необходимо ясно и ясно да се разбере как единица продукт, преминаваща през конвейера (или производствената линия), ще взаимодейства със сензора. Също така е необходимо да съпоставите изхода на сензора с платката Arduino.
  • Червен бутон. Предназначен е за запис/нулиране на стойността на броя единици от миналия продукт в енергонезависимата EEPROM памет. Еднократно кратко натискане на червения бутон кара стойността на последния брой единици да бъде записана в EEPROM паметта.смяна (обобщавайки стойността, съхранена в EEPROM паметта и стойността на продуктовите единици, преминали на смяна), еднократно задържане за приблизително 10 секунди води до пълно нулиране на стойността както в EEPROM паметта, така и на броя продуктови единици, преминали на смяна.
  • Важен момент ще бъде включването в програмата на функцията за потискане на отскачането на бутоните и филтъра за фалшиви положителни резултати, тъй като бутоните са механични и по подразбиране към тях е прикрепено такова болезнено отскачане на контакти. Същото важи и за крайните сензори за контакт, цялото това оборудване дава отскачане на контакти, които трябва да бъдат взети под внимание и филтрирани. Но тази точка вече е приложена в списъка на скица №2, като цяло темата за потискане на бърборенето заслужава отделна статия, може би скоро ще бъде пусната.

Принципът на действие на прототипа също трябва да бъде описан по-подробно. Така че, след подаване на захранване, на дисплея ще се покаже съобщение, че EEPROM паметта се използва. Това ще се случи, защото скицата предвижда еднократна операция за подготовка на част от EEPROM паметта за съхраняване на бъдещата стойност на общия брой продуктови единици. Обикновено всяка клетка от EEPROM паметта се попълва със стойност 255, това е, разбира се, ако EEPROM паметта никога не е била използвана или презаписвана за конкретна цел. Но ако вашите проекти все още използват EEPROM памет, следната скица ще ви помогне да я върнете в първоначалното й състояние (попълнете всички клетки със стойност 255). Основното тук е да зададете размера на EEPROM паметта в реда #define SIZE_OF_EEPROM

Е, достатъчно е да изтеглите тази скица само веднъж, след което можете да изтеглите програмата за брояч, но ние ще стигнем до нея по-долу. Освен това, след съобщението, че EEPROM паметта се използва, ще бъде изчертан стандартен екран, сдва реда:

  • Line Shift - Броят продукти, преминали през сензора за броене на единици на продукта (в нашия случай тази функция се изпълнява от зеления бутон)
  • Line Total - Общият брой на всички продукти, преминали през сензора за броене на продуктови единици. Числовата стойност, както можете да предположите, е взета от областта на енергонезависимата памет EEPROM.

  • С кратко натискане на зеления бутон можете да увеличите стойността в реда Shift, това ще бъде стойността на броя продуктови единици, преминали през сензора за отчитане на смени.
  • Можете да запишете стойността от реда Shift в енергонезависимата EEPROM памет чрез кратко натискане на червения бутон, докато стойността в реда Total се добавя към стойността в реда Shift, след което стойността в реда Shift се нулира.
  • Когато захранването е изключено / включено, стойността в реда Total се запазва (все пак EEPROM), ако стойността в реда Shift не е била записана в EEPROM преди, тогава тя не се запазва.
  • Продължителното задържане на червения бутон (около 10 секунди) води до пълно нулиране на зоната на EEPROM паметта, където се съхранява общата стойност на преброените единици от миналия продукт. При дълго задържане съответното съобщение ще се изобрази на дисплея с обратно броене в секунди, докато EEPROM паметта се нулира.
  • Ако при продължително задържане все още пуснете червения бутон (преди обратното броене да спре), тогава операцията по нулиране ще бъде отменена и редовете Shift и Total с броя на преброените единици на продукта отново ще се покажат на дисплея.

И накрая, скицата, която беше приложена за този прототип, незабавно ви предупреждаваме - скицата е много дълга (е, толкова много bukuff), след като сте сглобили прототипа, можете просто да качите скицата на платката Arduino, можете да я изтеглите като архив тук,или можете просто да копирате от прозорец на браузъра: