Мазмуну:

RGB Температура Көрсөткүчү (XinaBox менен): 5 кадам (Сүрөттөр менен)
RGB Температура Көрсөткүчү (XinaBox менен): 5 кадам (Сүрөттөр менен)

Video: RGB Температура Көрсөткүчү (XinaBox менен): 5 кадам (Сүрөттөр менен)

Video: RGB Температура Көрсөткүчү (XinaBox менен): 5 кадам (Сүрөттөр менен)
Video: Полное руководство по МОП-транзистору AOD4184A 15 А, 400 Вт для управления двигателем или нагрузкой 2024, Ноябрь
Anonim
RGB температура көрсөткүчү (XinaBox менен)
RGB температура көрсөткүчү (XinaBox менен)

Бул расмий түрдө менин биринчи Instructables макалам, ошондуктан мен бул мүмкүнчүлүктү азыр сынап көрүү үчүн колдонуп жатканымды моюнга алам. Платформанын кандай иштээрин, анын колдонуучу тажрыйбасынын бардык жагын сезиңиз. Бирок мен муну кылып жатканда, мен дагы иштеп жаткан жөнөкөй проект жөнүндө бөлүшүү мүмкүнчүлүгүнөн пайдалана алам деп ойлодум (XinaBoxтун продуктуларын колдонуп, "X-in-a-" деп айтылат) Куту ").

Бул жөнөкөй 5 этаптуу көрсөтмөдө мен төмөнкү темаларды камтыйм:

  • Керектүү компоненттер
  • Ар кандай xChipsди бириктирүү.
  • Arduino IDE чөйрөсүн орнотуу.
  • Кодду жазуу
  • Акыры, идеяны сынап көрүңүз

Мен бул көрсөтмөдө бөлүшпөйм:

  • Бул xChip'тердин ар бири эмне кыла аларын жана аларды белгилүү бир функцияларды аткарууга кантип манипуляциялоону түшүндүрүүнү каалаганым менен, бул үйрөткүчтүн максаты болмок эмес. Мен жакынкы аралыкта XinaBoxтун продукт каталогу аркылуу жеткиликтүү болгон ар кандай xChip'терге кире турган башка көрсөтмөлөрдү жарыялоону пландап жатам.
  • Мен Arduino кодунун негиздерине кирбеймин, анткени сизде буга чейин Arduino IDE менен иштөө тажрыйбасы бар, ошондой эле C/C ++ программалоо боюнча негизги деңгээлде түшүнүк бар деп ойлойм.

1 -кадам: Сизге эмне керек…

Сизге эмне керек…
Сизге эмне керек…
Сизге эмне керек…
Сизге эмне керек…
Сизге эмне керек…
Сизге эмне керек…

Техникалык жактан алганда, эң негизги продукт үйрөткүчтөр адатта "Hello World!" Менен башталат. Мисалы, же сиз "Arduino" же Raspberry Pi менен бир убакта иштешкениңизден бери тааныш болушуңуз мүмкүн болгон "Blink" мисалы. Бирок мен муну менен баштагым келбейт, анткени баары эле бир нерсени кылып жатышат, бул чындыгында бир аз кызыксыз кылат.

Анын ордуна, мен практикалык долбоордун идеясынан баштагым келди. Кааласаңыз, жетишерлик жөнөкөй жана масштабдуу проект идеясына айландыруучу нерсе.

Бул жерде бизге керектүү нерселер бар (Инструкциянын ушул бөлүмү үчүн берилген сүрөттөрдү караңыз):

  1. IP02 - Advanced USB программалоо интерфейси
  2. CC03 - Arm Cortex M0+ Core
  3. SW02 - VOC жана Аба ырайы сенсору (BOSCH тарабынан BME680 сенсорун колдонот)
  4. xBUS бириктиргичтери - ар кандай xChips (x2) ортосундагы I2C байланышын иштетүү үчүн
  5. xPDI туташтыргычы - программалоону жана мүчүлүштүктөрдү оңдоо үчүн (x1)

2 -кадам: Бөлүктөрдү туташтыруу

Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу

Бардык бөлүктөрдү бириктирүү үчүн, адегенде xBUS туташтыргычы менен xPDI коннекторунун 1 бөлүгүн баштайбыз.

Мен берген сүрөттөрдөн кийин, xChipsтин багытын жана туташтыргычтар кайда кетерин байкаңыз.

IP02 менен CC03 xChips ортосунда туташтыруучу чекиттерди аныктоо оңой.

CC03 үчүн бул түштүк тарап болот. IP02 үчүн, бул xChipтин түндүк тарабы болот.

Бул бүткөндөн кийин, биз CC03 xChipтин батыш тарабына дагы бир xBUS туташтыргычын кошобуз.

Бүттүбү?

Эми, жөн гана SW02 xChipти CC03дүн батыш тарабына туташтырыңыз.

Биз ноутбукка IP02 киргизүүдөн мурун, эки өчүргүч үчүн төмөнкү параметрлер тандалганын текшериңиз:

  • B тандалды (солго которуу)
  • DCE тандалды (оңго которуу)

Акыр -аягы, биз азыр ноутбукка IP02 салып, Arduino IDE орнотууну баштоого даярбыз.

3 -кадам: Arduino IDE орнотуу

Arduino IDE орнотуу
Arduino IDE орнотуу
Arduino IDE орнотуу
Arduino IDE орнотуу

Дагы, бул үйрөткүчтө, сиз Arduino IDE чөйрөсү менен таанышсыз, ошондой эле өнүгүү чөйрөсүндөгү китепканаларды кантип башкаруу керек деген божомолду айттым.

Бул долбоордун максаты үчүн бизге эки негизги китепкана керек болот:

  • arduino-CORE-https://github.com/xinabox/arduino-CORE
  • SW02 китепканасы -

Эки китепкананы тең рабочий столго жүктөп алыңыз.

Андан кийин, Arduino IDEди ишке киргизиңиз.

Негизги менюдан "Эскиз"> "Китепкананы кошуу"> ". ZIP китепканасын кошуу…"

Китепкана файлдары үчүн бир эле процессти кайталаңыз.

Андан кийин, биз тиешелүү "Башкарманы", ошондой эле "Портту" тандашыбыз керек болот. (Мен кызгылт сары түстөгү кутучаны колдонуп, керектүү тандоолорду баса белгилеп койгом.

  • Такта: "Arduino/Genuino Zero (Native USB Port)"
  • Порт: "COMXX" (бул сиздин машинаңызда чагылдырылган COM портуна ылайык болушу керек. Меники COM31ди колдонуп жатат)

Жарайт! Мен билем, сиз коддоону кааладыңыз, андыктан кийинки кадамда биз буга көңүл бурабыз.

4 -кадам: Кодго убакыт

Бул бөлүмдө мен долбоордун кодунун үзүндүлөрүн бөлүшүүдөн баштайм. Жана аягында, мен кодду Arduino IDE булак файлына көчүрүп, чаптоону жеңилдетип, толук булакты жарыялайм.

Баш файлдар:

#include /* Бул негизги XinaBox Негизги Функцияларынын китепканасы. */

#include /* Бул VOC & Weather Sensor xChip үчүн китепкана. */

RGB Led сигналдарын көзөмөлдөө үчүн кээ бир константаларды аныктоо:

#Define redLedPin A4

#жашылЛедПин 8ди аныктоо #көкЛедПин 9

Андан кийин, биз RGB баалуулуктарын өткөрүү үчүн функциянын прототипин жарыялашыбыз керек

жараксыз setRGBColor (int redValue, int greenValue, int blueValue);

SW02 объектисин жарыялоо:

xSW02 SW02;

Setup () ыкмасы:

жараксыз орнотуу () {

// I2C Communication Wire.begin баштоо (); // SW02 сенсорун баштаңыз SW02.begin (); // Кечигүүнү нормалдаштыруу үчүн сенсордун кечигүүсү (5000); }

Эми негизги цикл үчүн ():

void loop () {

float tempC; }

Андан кийин, сенсордук чип менен байланышты баштоо үчүн, биз программада мурда жараткан SW02 объектинин жардамы менен сурамжылоо жүргүзүшүбүз керек болот:

// SW02 sensorSW02.poll () маалыматтарын окуу жана эсептөө;

Азыр биз сенсордун температурасын окуу үчүн окуп жатабыз

tempC = SW02.getTempC ();

Бизде окуу болгондон кийин, биз жасай турган акыркы нерсе, эгер температуранын диапазонун аныктоо үчүн if… else… control операторлорун колдонуу жана андан кийин setRGBColor () функциясын чакыруу

// Сиз климатыңызга жараша температуранын диапазонун тууралай аласыз. Мен үчүн, мен Сингапурда жашайм, // жыл бою тропикалык болуп саналат жана температуранын диапазону бул жерде кыйла тар болушу мүмкүн. if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); }

Эскертүү: Эгерде сиз белгилүү бир түс үчүн тиешелүү RGB баалуулуктары эмне экенин билгиңиз келсе, Google'дан "RGB түс баалуулуктары" боюнча издөө жүргүзүүнү сунуштайм. Сиз каалаган түстү тандоо үчүн түс тандагычты колдоно турган көптөгөн сайттар бар

// Эгерде сиз кааласаңыз жана бул милдеттүү эмес болсо, сенсордун көрсөткүчтөрү үчүн сурамжылоонун ортосундагы кечигүүнү кошо аласыз.

кечигүү (DELAY_TIME);

Сиз, албетте, программанын башында DELAY_TIME константасын жарыялай аласыз, ошондо сиз программанын бир нече жеринде эмес, бир жолу анын маанисин өзгөртүүгө туура келет. Акыр -аягы, биздин RGB LEDди башкаруу функциясы керек:

жараксыз setRGBColor (int redValue, int greenValue, int blueValue) {

analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Финалдык программа

#кошуу

#кошуу #аныктоо redLedPin A4 #define greenLedPin 8 #аныктоо blueLedPin 9 боштук setRGBColor (int redValue, int greenValue, int blueValue); const int DELAY_TIME = 1000; xSW02 SW02; void setup () {// I2C Communication Wire.begin () баштаңыз; // SW02 сенсорун баштаңыз SW02.begin (); // Кечигүүнү нормалдаштыруу үчүн сенсордун кечигүүсү (5000); } void loop () {// SW02 float tempCден окулган маалыматтарды сактоо үчүн өзгөрмөнү түзүңүз; tempC = 0; // SW02 сенсорунун SW02.poll () маалыматын окуу жана эсептөө; // SW02ге температураны өлчөөнү жана // temperatue өзгөрмөсүн tempC = SW02.getTempC () сактоо үчүн суроо бериңиз; if (tempC> = 20 && tempC = 25 && tempC = 30 && tempC = 32 && tempC = 35) {setRGBColor (255, 0, 0); } // Сенсордун ортосундагы кечигүү окуу кечигүүсү (DELAY_TIME); } боштук setRGBColor (int redValue, int greenValue, int blueValue) {analogWrite (redLedPin, redValue); analogWrite (greenLedPin, greenValue); analogWrite (blueLedPin, blueValue); }

Эми биздин программа даяр болгондон кийин, xChipти программалайлы! Жүктөө процесси Arduino такталарына программаны кантип жүктөгөнүңүз менен бирдей.

Бүткөндөн кийин, эмне үчүн аны розеткадан ажыратып, сыноо үчүн алып чыкпаңыз.

Сунушталууда: