Научете се да играете китайски шах. Syanchi: Китайски шах. Вечен Шах и вечна атака

Добър ден, днес ще споделя инструкциите за производството на часовници с термометър за стая ( Часовникът на Arduino го направи сам). Часовникът работи на Arduino Uno, графичен екран WG12864B се използва за показване на времето и температурата. Като температурен сензор - DS18B20. За разлика от повечето други часове, няма да използвам RTS ( Реално време. Часовник) и аз ще се опитам да направя без този допълнителен модул.

Схемите за Arduino се отличават с тяхната простота и могат да започнат да изучават Arduino-всички. Как да се свържете библиотеки и флаш Arduino може да се прочете нашата статия.

Нека продължим.

За да създадете часове за данни, отлагаме се:

ARDUINO UNO (или всяка друга съвместима с Arduino такса)
- Графичен екран WG12864B.
- DS18B20 Температурен датчик
- резистор 4.7 com 0.25 w
- резистор 100 ом 0.25 w
- отделение за батерии за 4 батерии тип AA тип "пръст"
- FIT кутия
- малък файл.
- лак за нокти (цвят или цвят на тялото)
- малко тънка пластмаса или картон
- изол
- свързване на проводници
- Платка
- Бутони
- запояване желязо
- спойка, колофон
- Двустранна касета

Подготовка на графичен екран.
С връзката на екрана на пръв поглед има много проблеми и трудности. Но ако първо се занимавате с техните възгледи, това ще бъде много по-лесно и по-ясно. Има много разновидности и видове екрани на контролера KS0107 / KS0108. Всички екрани са направени за разделяне на 4 вида:
Вариант А: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
Variant B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec Blue128x64lcd, AZ дисплеи AGM1264F, DisplayTech 64128A BC, Adafruit GLCD, DataVision DG12864-88, TIKITRON SG12864J4, QY-12864F, TM12864L-2, 128644L-2, 128644L-2, 12864J-1
Вариант C: Shenzhen Jinghua Показва Ко ООД JM12864.
Вариант D: Wintek- Cascades WD-G1906G, WINTEK - GEN / WD-G1906G / KS0108B, WINTEK / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, VARITRIX / MGLS19264 / HD61202

Списъкът не е завършен, има много от тях. Най-често и по мое мнение, удобен WG12864B3 v2.0. Дисплеят може да бъде свързан към Arduino на сериен или паралелен порт. Когато се използва с Arduino Uno, по-добре е да изберете връзка за сериен порт - след това се нуждаем само от 3 изхода на микроконтролера, вместо най-малко 13 реда, когато сте свързани чрез паралелен порт. Тя свързва всичко е съвсем просто. Има още един нюанс, можете да намерите две опции за дисплеи, с вграден потенциометър (за регулиране на контраста) и без него. Аз избрах и аз също ви съветвам да ви направим, с вградено.


Това намалява броя на частите и времето на запояването. Също така си струва да се постави ток-ограничителен резистор с номинална стойност от 100 ома за осветяване. Свързване директно 5 волта, съществува риск от изгаряне на подсветката.
WG12864B - ARDUINO UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (Rs) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - чрез резистор - + 5V
20 (BLK) - GND

Най-удобно всичко това събира гърба на екрана и извежда 5 кабела на свързване към Arduino Uno. В крайна сметка трябва да се окаже нещо подобно:


За тези, които все още избират паралелна връзка, ще дадат таблица за свързване.

И схемата за екраните на Вариант Б:



Няколко сензора могат да бъдат включени в един ред на комуникация. За нашия часовник човек е достатъчно. Свързваме проводника от контакта "DQ" DS18B20 до "PIN 5" ARDUINO UNO.

Подготовка на борда с бутони.
За да зададете времето и датите на часовника, ще използваме три бутона. За удобство ние спойка три бутона на платката и показват проводниците.


Свържете се както следва: Общата жица за всичките три бутона се свързват към "GND" Arduino. Първият бутон служи за въвеждане на режим на настройка на времето и да превключите с времето и датата, свържете се с "PIN 2". Вторият, бутонът за увеличение - към "PIN 3", и третата, бутона за намаляване на стойността на "PIN 4".

Събрание заедно.
За да избегнете късо съединение, трябва да проявите екрана. В кръг, завийте лентата и нататък задна част Двустранни скоч, издълбани по размер, бар от изолационен материал. Подходящ е плътна картон или тънка пластмаса. Възползвах се от пластмасата от таблета за хартия. Оказа се следното:


Предната част на екрана на ръба на лепилната двустранна лента на базата на пяната, за предпочитане черно.


Свържете екрана до Arduino:


Освен това от отделението за батерията се свържете с "Vin" Arduino, минус до "GND". Поставете го зад Arduino. Преди да инсталирате в случая, не забравяйте да свържете температурния сензор и дъската с бутоните.


Подготовка и запълване на скица.
За температурен сензор се нуждаете от библиотека на Onewire.

Изходът към екрана се извършва чрез библиотеката U8Glib:

За да редактирате и попълните скицата, трябва да инсталирате тези две библиотеки. Това може да се направи по два начина. Просто разопаковайте тези архиви и поставете разопаковани файлове в папката "Библиотеки", намираща се в папката с инсталиран IDE ARDUINO. Или втората опция за установяване на библиотеки директно в програмната среда. Без разопаковане на изтеглени архиви, в Arduino Ide, изберете менюто Skatch - свържете библиотеката. В най-горната част на падащия списък изберете Add.zip библиотека. В диалоговия прозорец, който се появява, изберете библиотеката, която искате да добавите. Отворете отново менюто за скица - свържете библиотеката. В най-долната част на падащия списък трябва да видите нова библиотека. Сега библиотеката може да се използва в програми. Не забравяйте да рестартирате Arduino Ide в края на краищата.

Температурният сензор работи на единия протокол и има уникален адрес за всяко устройство - 64-битов код. Всеки път, когато търсите този код е неподходящ. Затова първо трябва да свържете сензора на Arduino, изсипете в него скица, разположена във менюто Файл - Примери - Далас Температура - OneWiReSearch. След това стартирайте инструментите - монитора на портовете. Arduino трябва да намери нашия сензор, да напише своя адрес и текущи температурни показания. Копиране или просто напишете адреса на нашия сензор. Отворете скица ARDUINO_WG12864B_TERM, търсейки низ:

BYTE ADDR \u003d (0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97); // адрес на моя сензор

Запишете адреса на сензора между къдравите скоби, като замените адреса на моя сензор.

Поток:

//u8g.setprintpo (44, 64); U8g.print (SEK); // изтегляйте секунди, за да контролирате коректността на хода

Той служи за извеждане на секунди до надписа "Данни". Това е необходимо за точна инсталация Време.
Ако часовникът се бърза или изостава да се променя в реда:

Ако (micros () - prevmicros\u003e 494000) (// промяна в друга за корекцията е 500,000

Аз изразих номера, в който часовникът върви по-скоро точно. Ако часовниците ви бързат да увеличат този номер, ако изоставате. Да се \u200b\u200bопредели точността на инсулта и се нуждаят от приключването на секунди. След точна калибриране секундите могат да бъдат коментирани и по този начин да се премахнат от екрана.

Часовник в реално време е модул, който съхранява текущата дата и не го нулира, когато захранването е изключено благодарение на вградената батерия. Можете да чуете часовника въз основа на DS1307 чипа. Този чип е изключително нисък часове. Също стоящ за един час на ден. Препоръчвам да използвате модул на базата на висококсидрен DS3231 чип, който е оборудван с термометър за регулиране на хода на часовете в зависимост от температурата. Точността на хода на този чип е на нивото на добри часовници и е 2ppm при температури атмосфер 0 ° -40 °. В същото време модулът е съвместим с всички библиотеки, написани за модул, базиран на чипа DS1307. Статията разказва за свързването на модула към Arduino и да взаимодейства с тях, използвайки времевата библиотека. Можете да закупите такъв модул от продавача.

Връзка в реално време

Часовникът е свързан чрез I2C протокола само с два проводника. Освен това трябва да затегнете заключенията, за които часовникът е свързан с мощност, използвайки резистори 2 com. Заключенията на часовника изглеждат така:

Заключения 32K и SQW могат да бъдат игнорирани. Назначаването им не се разглежда в този член. SCL и SDA са заключения I2C интерфейс. Те трябва да бъдат свързани с контролера. VCC и GND - +5 V и Земята, съответно.

SCL и SDA на различни дъски са разположени в различни заключения:

UNO, нано. A4 (SDA), A5 (SCL)
Mega2560. 20 (SDA), 21 (SCL)
Леонардо. 2 (SDA), 3 (SCL)

Изходът на часовника SDA е свързан с SDA на контролера. SDL часове, съответно, до SDL контролера. След като свържете кабелите, такава снимка трябва да се окаже:

Работата с модула в реално време е по-удобна с библиотеката. Най-удобно в това отношение се нарича: време ( английски време).
Библиотеката е "обвивка" за друга популярна библиотека, която работи с часовника: DS1307RTC. Въпреки факта, че библиотеката е предназначена за DS1307 чипа, той работи чудесно с DS3231, тъй като протоколите за взаимодействие са съвместими.

Изтеглете и двете библиотеки.

След като изтеглите, поставете съдържанието на архивите в папката на библиотеките, която се намира в папката с медия за развитие на Arduino. Стартирайте Arduino Ide Environment и отворете примера на стандартната библиотека: Примери-\u003e Time-\u003e Timertc
Или просто копирайте този код:

#Include. #Include. #Include. void setup () (Serial.Begin (9600); докато (! сериал); // изчакайте, докато сериалният монитор на Arduino открие setyncprovider (RTC.get); // функцията, за да получите времето. от RTC IF (Timestatus ()! \u003d Timeet) serial.println ("не може да се синхронизира с RTC"); иначе serial.println ("RTC е задал системното време"); ) void loop () (ако (timestatus () \u003d\u003d tomeeset) (digitalclockdisplay ();) друго (serial.println ("времето не е зададено. Моля, проницателност Време "); serial.println (" пример за timertcetcset, или пример за DS1307RTC. "); Serial.println (); закъснение (4000);) закъснение (1000);) void digitalclockdisplay () (// цифров дисплей на часовника на. \\ T Време сериал. Отпечатъци (час ()); printdigits (минута ()); printdigits (втори ()); serial.print (""); serial.print (ден ()); serial.print ("); сериен. печат (месец ()); serial.print (""); serial.print (година ()); serial.println ();) void printdigits (int цифри) (// функция за комунални услуги за цифров часовник дисплей: отпечатъци, предхождащ дебелото черво и водещ 0 serial.print (":"); ако (цифри)< 10) Serial.print("0"); Serial.print(digits); }

#Include.

#Include.

#Include.

void setup () () (

Сериен. Начало (9600);

докато (! Сериал); // изчакайте, докато сериалният монитор Arduino се отвори

setsyncprovider (RTC. Get); // функцията, за да получите време от RTC

if (timestatus ()! \u003d tomeeset)

Сериен. Println ("не може да се синхронизира с RTC");

друго.

Сериен. Println ("RTC е задал системното време");

void loop ()

iF (Timestatus () \u003d\u003d TOMEESET) (

digitalClockDisplay ();

) Иначе (

Сериен. Println ( "Времето не е зададено. Моля, изпълнете времето") ;

Сериен. Println ( "Пример за Timertcetcset или DS1307RTC пример.") ;

Сериен. Println ();

закъснение (4000);

закъснение (1000);

void DigitalClockDisplay () () (

// Дигитален часовник Показване на времето

Сериен. Печат (час ());

printdigits (минута ());

printdigits (втори ());

Сериен. Печат (");

Сериен. Печат (ден ());

Сериен. Печат (");

Сериен. Печат (месец ());

Сериен. Печат (");

Сериен. Печат (година ());

Сериен. Println ();

void printdigits (int цифри) (

// Помощна функция за цифров часовник дисплей: отпечатъци преди дебелото черво и водене 0

Сериен. Печат (":");

ако (цифри.< 10 )

Сериен. Печат ("0");

Сериен. Печат (цифри);

След като изтеглите скицата в дъската, стартирайте портния монитор (услуга-\u003e порт монитор). Ще видите съобщения от библиотеката. Показваното време ще бъде неправилно, или библиотеката ще се оплаква до неконфигурирания часовник. За да регулирате часовника, да изтеглите пример от библиотеката DS1307RTC (примери -\u003e DS1307RTC-\u003e Settime). Заредете този пример в таксата. След зареждането на часовника ще бъде настроен време за завършване Skketcha.. Забавяне между компилацията и пълно натоварване Ще бъде доста малко, което ще бъде достатъчно за точно настройване на часовете. Но ако деактивирате и отново свържете борда, дори след няколко часа, времето в часовника все още ще бъде отново инсталирано в времето на компилация и се оказва неправилно. Ето защо, използвайте този пример само за конфигуриране, след настройката, изключете часовника или изтеглете друга скица.

Добър ден. В днешната статия ще произвеждаме необичайни двоични часовници, базирани на Arduino палав ръце. Като се разбира с процеса на създаване на подобно занаятиВ бъдеще можете да повторите дворовете за всеки дизайн.

Стъпка 1: Какво е двоичен часовник?

Да започнем с, да помним, че такъв двоичен (двоичен) номер е номерът, представен в двоична изчислителна система, цифрови стойности, които се използват само два знака: 0 (нула) и 1 (един).

Двойният часовник е часовник, който показва времето в двоичен формат. Проектът използва 6 колони от светодиоди за показване на нули и единици. Всяка колона показва една цифра / разреждане, такъв формат е известен като двоичен десетичен номер (DDH). Всеки ред показва степен, от 2 ^ 0 (или 1) до 2 ^ 3 (или 8). Ето защо всичко, което трябва да се направи, когато четенето на информация от часовника е да обобщи ценностите на високоговорителите със светодиодите. Например първата колона включва 4-ти и 1-ви светодиода. Ние добавяме 8 до 1 и получаваме 9 (броят на секундите е 9). Следващата колона на десетата секунди, само 3-ти светодиодът е светещ в него, така че обща стойност Ще бъде 49 секунди, само с минути и часове. Моля, обърнете внимание на следното, че часовникът показва времето в 24-часовия формат.

Стъпка 2: Композитни части

  • Arduino. Професионалист. Мини. 328 5 В. Използвана такава такса, но всъщност можете да използвате друг. Ако никога не сте използвали Pro Mini, вероятно ще имате нужда от вас Cp.2102 (програмист) За свързване на дъската към компютъра;

  • DS.1302 - модул в реално време;

  • 20 mm дифузни "топли" светодиоди(Съветвам ви да вземете с резерв);

  • 20 резистори с резистентност 10Ω;

  • 2 часовникови бутона;

  • 2 резистори със стойност 10kΩ резистентност (използван като резистори за натоварване).

Стъпка 3: Изгответе прототипа

Да започнем да правим прототипа на бъдещето занаяти. По принцип това не е така необходимо условиеНо трябва да погледнете как светилата матрица, Arduino и часовникът ще работят заедно. При прототипи, използвах Arduino Mega и прости червени светодиоди. Всичко работи добре, както се очаква.

Стъпка 4: Случай

Жилище selfiochers.(състои се от две половини ) Тя ще бъде направена от дърво. Тя ще изглежда контраст на фона на двоичните часовници и да даде правя Ретро стил.

Стъпка 5: Схема

Светодиодите се групират в матрицата, за да се намали броят на конверсията на Arduino. В нашия случай на матрицата се присвояват 9 заключения. След като направите LED матрицата, ние спойка изходи за Arduino, след това часовник модула, бутоните за определяне на времето и в края на захранването.

Стъпка 6: код

Тъй като основата на кода се приема чрез пример с Arduino PlayGroud Post за часовника DS1302. След това бяха направени промени за показване на времето на LED матрицата.

Статии по темата: