Агуулгын хүснэгт:

TheSUN, Arduino хөдөлгүүртэй ханын цаг: 6 алхам (зурагтай)
TheSUN, Arduino хөдөлгүүртэй ханын цаг: 6 алхам (зурагтай)

Видео: TheSUN, Arduino хөдөлгүүртэй ханын цаг: 6 алхам (зурагтай)

Видео: TheSUN, Arduino хөдөлгүүртэй ханын цаг: 6 алхам (зурагтай)
Видео: How to Make Sun Tracking Solar Panel using Arduino 2024, Долдугаар сарын
Anonim
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг
TheSUN, Arduino хөдөлгүүртэй дизайны ханын цаг

Дахин сайн байцгаана уу, зааварлагчид аа!:-P

Тээвэрлэлтийн асуудлын улмаас би ABTW төслөө үргэлжлүүлж чадаагүй тул өөр шинэ бүтээлээ үзүүлэхээр шийдлээ.

Над шиг бидний олонх нь эдгээр сайхан хаягтай LED зурвас (NEOPIXEL LED гэж нэрлэдэг) дуртай гэж би боддог. Та тэдгээрийг ADAFRUIT -аас авах боломжтой. Бусад борлуулагчид ижил төстэй бүтээгдэхүүн нийлүүлэх болно. ADAFRUITS дээр номын сан байдаг - GitHub (над дээр дарна уу), жишээ нь код агуулсан тул кодчилол шууд байх ёстой.

Би эдгээр NEOPIXELS -ийн бодлыг олж харсан, тэр гялалзсан жижиг зүйлсийг би юу хийж чадах вэ?

  • LED матрицтай дэлгэц үү? -> Маш төвөгтэй бөгөөд би үүнийг ашигладаггүй (одоогоор)
  • X-Mas гэрэлтүүлэг? -> Энэ нь улирлын онцлогт тохирсон боловч нэгийг худалдаж авах нь илүү хямд байх болно:-P
  • цаг? -> Яагаад болохгүй гэж! Гэхдээ энэ нь загварлаг, уламжлалт бус байх ёстой

Тиймээс хананы цаг хийцгээе.

Хэрэв бид бугуйн цагийг сайтар ажиглавал (хэрэв танд над шиг аналог байгаа бол) бидэнд 12 цаг 60 минут байгааг анзаарах болно (найдаж байна). Энэ нь бидэнд 60 хаягтай LED хэрэгтэй гэсэн үг юм, хэрэв бид 60 LED / метр бүхий тууз авбал ~ 318мм диаметр (радиус = хамрах хүрээ / (2*Π)) авна. хэтэрхий том.

Үнэн бол хэрэв та хэн нэгнээс цаг асуувал 3 өнгөрч 2 минут болсон гэж хэн ч хэлэхгүй! Та хариулахдаа "Энэ бол өнгөрсөн 5 өнгөрч байна 3" гэсэн хариултыг авах болно. Тиймээс бид яагаад бүх зүйлийг 5 минутын алхамаар хэмжих ёсгүй юм бэ? Үүний тулд бидэнд ердөө 12 LED хэрэгтэй болно, энэ нь 63.6 мм диаметртэй болно гэсэн үг юм. Бид мөн тус тусад нь өнгө өгснөөр цаг, минутыг ялгаж чаддаг бөгөөд "дутуу" нэг минутын алхамыг 4 LED зурвас (эсвэл ганц хаягтай LED) -аар хангах боломжтой болно.

ТӨЛӨВЛӨГӨӨ! Би бүх зүйлийг хэрхэн хийснийг харцгаая. Урьдын адил би материалын жагсаалт/нэхэмжлэх, түүнийг хэрхэн яаж хийх талаар заавар өгөх болно.

Хэрэв та зөвхөн Швейцарь хүмүүс л сэрүүн цаг хийж чадна гэж бодож байгаа бол таны буруу байсныг баталъя (уучлаарай Швейцарь:-P)

Алхам 1: Дизайн ба материалын сонголт

Дизайн ба материалын сонголт
Дизайн ба материалын сонголт
Дизайн ба материалын сонголт
Дизайн ба материалын сонголт

Дизайн:

Хэрэв бид аналог цаг/цагийг нарийвчлан авч үзвэл тойрог нь бидний мэддэг 12 * 30 ° алхамаар хуваагдсан бөгөөд LED зурваст 63.6 мм хэрэгтэй болно. Тиймээс хоолойг тойруулан туузыг ямар нэгэн байдлаар тэгшлэх боломжтой байх ёстой. Би нийлэг шил ашиглахаар шийдсэн, учир нь энэ нь сайхан харагдаж байгаа бөгөөд LED гэрлийг дотор нь оруулах боломжтой бөгөөд шилний алдаа бүрт гэрэл цацрах болно. Тиймээс, илүү их бохирдол нь илүү их гэрэл цацрахад хүргэдэг гэж хэлье. Үүнийг л бид хүсч байна. Тиймээс сийлбэр хийх хэрэгслүүдээ чөлөөтэй авч, бүтээлч байгаарай:-)

Хэрэв та миний БОМ-ийн жагсаалт болон миний цагийг нэрлэх нэрээ дурдвал би нар шиг загварыг сонгосон бөгөөд бүх нийлэг эд ангиудыг E-Bay дээр Германы худалдагчаас авсан (холбоосыг Монголбанканд өгсөн болно). Танд хэрэгтэй болно:

  • нийлэг газрын хавтан, ил тод зузаан = 6мм, диаметр = 300мм
  • нийлэг дунд хавтан, ил тод зузаан = 3мм, диаметр = 150мм
  • нийлэг урд хавтан, торго, зузаан = 3мм, диаметр = 90мм
  • нийлэг хоолой, тунгалаг, гаднах диаметр = 64 мм (бид LED туузаар бага зэрэг засах хэрэгтэй болно)
  • нийлэг саваа, ил тод, диаметр = 5мм (энэ нь бидний цацраг байх болно); Дотор нь бөмбөлөгүүдтэй нийлэг саваа байдаг, би танд зөвлөж байна, гэхдээ надад байхгүй.
  • нийлэг цавуу

Электроник (Fritzing файлуудыг үзнэ үү):

  • Arduino mini (эсвэл үүнтэй төстэй)
  • 1 хаягтай LED зурвас (12 LED нь цаг, 5 минутын алхмаар)
  • 4 хаягтай LED (ганц минут)
  • 2 330Ohm эсэргүүцэл
  • 1 1000µF конденсатор
  • 1 тэжээлийн хангамж (5V/500mA)
  • RTC DS-1307 (заавал биш!)
  • Bluetooth модуль (заавал биш! Тийм ээ, та цагийг BT болон Android ухаалаг гар утсаар тохируулж болно)

Хэрэв та яагаад миний BoM дээр MAX485 чипс байгаа юм бэ гэж өөрөөсөө асуувал. Хариулт нь би хийх гэж буй гэрийн автоматжуулалтын системтэй цагийг синхрончлохыг хүсч байна (хэзээ ч зуны цагийн хуваарийг хэзээ ч дахин тохируулах шаардлагагүй болно:-P). Би үүнийг дараагийн блогтоо тайлбарлах болно. хэдэн долоо хоног/сар.

Таны анзаарсанчлан, би бас нарны зай болон LiPo-тай цагийг сүлжээнээс салгахыг хичээх болно, гэхдээ энэ зааварт үүнийг өөрөө туршиж үзээрэй.

Алхам 2: Нийлэг эд ангиудыг бэлтгэ

Нийлэг эд ангиудыг бэлтгэ
Нийлэг эд ангиудыг бэлтгэ
Нийлэг эд ангиудыг бэлтгэ
Нийлэг эд ангиудыг бэлтгэ
Нийлэг эд ангиудыг бэлтгэ
Нийлэг эд ангиудыг бэлтгэ

Багаж хэрэгсэл:

Юуны өмнө, хэрэв та 1 -р масштаб дээр нэмсэн DWG төлөвлөгөөг хэвлэх нь үнэхээр тустай болно: 1. Энэ нь бүх хэсгүүдийг хооронд нь уялдуулж, өрөмдлөгийн төлөвлөгөө болгон ашиглах болно.

  • хобби хутга
  • хэмжигч хэмжигч
  • төмөр хөрөө
  • хавчаар
  • гар өрөм
  • өрөмдөх боломжтой, диаметр нь 65 мм
  • металл өрмийн багц
  • жижиг металл файл
  • нийлэг цавуу

Эхэлцгээе:

Газрын хавтанг аваад төлөвлөгөөний дагуу тэгшлээрэй, ингэснээр та тойргийн төвийг авах боломжтой болно. Одоо өрөмдлөгийн савыг өрөмдөж, газрын хавтангийн төв хэсэгт гадна тойрог нь ~ 2-3мм гүн байх ёстой. Энэ нь LED туузыг газрын тавцанд оруулах (LED тууз ~ 10мм өргөн, дам нуруу нь зөвхөн 5мм диаметртэй) бөгөөд тэдгээрийг дам нуруутай уялдуулах (1 -р зургийг үз).

Одоо бидэнд хусуур, хэмжигч, нийлэг хоолой хэрэгтэй. Үүнийг хэсэг болгон хайчилж ав, би 40мм урттай орон сууц (хоолой) хийхээр шийдсэн (зураг 2). Одоо төмрийн төмрийг дахин шүүрч аваад, хоолойны нэг талд жижигхэн рабет хийж, төмөр файлаар жигд болго. Эндээс утаснууд гарч ирэх болно;-) (3-р зургийг үз)

Цавуу хийх цаг … Дунд хавтан (d = 150мм) ба урд талын хавтан (ханасан хавтан) -ыг дахин төлөвлөж, дунд хавтангийн төв хэсэгт цавуу түрхээд, урд талын хавтанг тэгшлээд, дуустал хүлээнэ үү. цавуу бага зэрэг хатуурсан байна. Миний хэрэглэдэг цавуу нь хөнгөн хатуулаг бөгөөд 2-3 цаг хүртэл үргэлжилдэг тул та хавчаар ашиглахыг хүсч байна … (зураг 3 ба 4)

Хоолойг газрын тавцан дээр наахдаа мөн адил хийж, торх нь хавтан руу харсан байх ёстой бөгөөд анхны LED (12 цаг) байхыг хүссэн газартаа тааруулаарай.

Үүнийг хатууртал хүлээнэ үү!

Одоо бид төлөвлөгөөний дагуу 2 хэсгийг (тохируулсан) тэгшлэх боломжтой бөгөөд нэг минутын 4 цооног өрөмдөх боломжтой (5мм диаметртэй эсвэл таны сонгосон LED -ийн диаметр; хэт даралгүйгээр удаан өрөмдөх). Ойролцоогоор 8-9 мм гүн өрөмдөх. Болгоомжтой байгаарай, ханасан хавтан нь маш хэврэг бөгөөд хэрэв та гүн рүү өрөмдвөл тоормослох боломжтой. Та одоо тэдгээрийг нааж болно, эсвэл над шиг аюулыг газрын хавтан руу шургуулж боолтоор бэхлэх болно.

Дахин хэлэхэд цавуу хатууртал хүлээгээд цацрагуудыг тэгшлээд газрын хавтан дээр наа. (зураг 6) Юу болохыг тааварлаарай … цавуу хатууртал хүлээнэ үү:-) Цахилгаан бараа руу явцгаая …

Алхам 3: Электроник

Электроник
Электроник
Электроник
Электроник
Электроник
Электроник
Электроник
Электроник

Багаж хэрэгсэл:

  • гагнуурын төмөр
  • гагнуурын утас
  • хобби хутга
  • ПХБ -ийн прототип хийх жижиг хэсэг
  • пааландсан утас эсвэл таны хүссэн бусад утас
  • халуун цавуу

Би цорын ганц LED -тэй. Хэрэв та пааландсан утас ашигладаг бол гагнахаасаа өмнө лакыг хусахаа бүү мартаарай. Та үүнд зориулж хобби хутга ашиглаж болно. Тэднийг утсаар холбож үзээд flikto.de дээрх хавчуургатай зургийг үзнэ үү. DOUT нь дараагийн LED дээр DIN рүү шилждэг болохыг анхаарна уу! (2 -р зургийг үзнэ үү) Үүний дараа та LED туузыг тус бүр 3 LED бүхий 4 элемент болгон хувааж болно. Бид 63.6 мм LED зурвас, 64 мм хоолойтой гаднах диаметртэй тул үүнийг дам нуруунд яг тааруулахын тулд нэмэлт урт хэрэгтэй болно. Зураг дээрх шиг паалантай утсаар холбоно уу. Би үйлчлэх жижиг прото ПХБ хийсэн. "Цахилгаан бэхэлгээ" болгон LED зурвасын бүрэлдэхүүн хэсгүүдийг агуулсан болно (330Ohm эсэргүүцэл ба 1000µF багтаамжтай конденсатор, зураг 7).

Одоо туузыг хоолойны эргэн тойронд холбож, LED -ийг дам нуруунд нь тэгшлээрэй. Эхний Pixel нь 12 цагт таарч байна. Хэрэв та орон сууцаа эргүүлсэн бол бүх зүйл толин тусгал гэдгийг бүү мартаарай. Цагийн зүүний эсрэг явна уу! Халуун цавуу ашиглан хоолойд бэхлээрэй. Сегмент бүрийн хувьд жижиг дусал үүнийг хийх болно!

Та ганц LED -тэй ижил зүйлийг хийж болно (эцэст нь толин тусгал хийх боломжтой), зүгээр л халуун цавуу нэмж, урьдчилан нүхэнд дарна уу.

Arduino-д утас бүү залгаарай, бид BT холболтын тоног төхөөрөмжийн цуваа ашиглах тул эхлээд програм хангамжийг тайлбарлах дараагийн алхамуудыг шалгаарай.

Алхам 4: Код

Код
Код
Код
Код

Та одоо ноорогоо Arduino руу ачаалж болно. Та одоо LED туузыг утсаар холбож болно. BT модулийг бүү холбоорой !!! Бид эхлээд кодыг харахыг хүсч байна, та хэд хэдэн зүйлийг хаанаас өөрчилж болохыг мэдэж байх ёстой …

Arduino IDE болон номын санг татаж авах. Arduino IDE, AdafruitNeoPixel, Time, DS1307RTC

IDE-ийг суулгаж, номын санг номын сангийн хавтсанд оруулна уу. Хавсаргасан INO файлыг нээгээд өөрийн arduino-д байршуулна уу. Энд тайлбарласан код нь ижил боловч нэмэлт тайлбартай! Хэрэв та бүх зүйлийг зөв хийсэн бол одоо "bootanimation" -ийг харж болно. Цуваа монитор дээр цагийг тохируулах боломжтой. Зүгээр л @"hour"/"min"/"sec" гэж бичээрэй. @10/33/00 (10:33).

Кодоор чөлөөтэй тоглоорой … Энд кодын товч тайлбарыг өгөхгүй байна (RTC -гүйгээр тохируулах!)

ТОДОРХОЙЛОЛТ:

#тодорхойлох PIN 6 // Цагийн LED зурвас #тодорхойлох MINPIN 5 // Singelminute LED #тодорхойлох NUMPIXELS 12 // Нэг цагийн пикселийн тоо #MINNUMPIXELS 4 // Нэг минутын пикселийн тоо #тодорхойлох BAUDRATE 115200 // Baudrate нь таарч байх ёстой. BT модулийн дамжуулалтын хурд #define utch '@' // TimeSync -ийн BYTE -ийг эхлүүлэх

int timeset = 0; // bootint delayval = 20 -ийн дараа цагийг тохируулсан бол хадгалах туг. // бүдгэрч буй анимацийн саатал int clocktimer = 10000; // time refresh int timebright = 250; // цагийн тод байдал Strip int mtimebright = 50; // singelminint -ийн тод байдал = 0; // bootint ahour -ийн дараа clearpixels функцийг дуудах туг; int oldahour = 0; // дэлгүүр өмнөх. цаг дуусахад; int oldamin = 0; // өмнөх минутыг хоёр дахь удаа шинэчлэх зорилгоор хадгалдаг; int aday; int amonth; int ayear; int mmin; tmElements_t tm;

// 2 NeoPixel LED массивын тохиргоо (NAME = TYPE (PIXELS NUMBER, OL PIN, FORMAT RGB or GRB, FREQ); Дэлгэрэнгүй мэдээллийг Adafruit гарын авлагаас үзнэ үү. Adafruit_NeoPixel minpixels = Adafruit_NeoPixel (MINNUMPIXELS, MINPIN, NEO_RGB + NEO_KHZ800);

ТОХИРУУЛАХ:

хүчингүй тохиргоо () {

Цуваа.begin (BAUDRATE); Wire.begin (); // Туузыг эхлүүл, бүх OFFpixels.begin (); minpixels.begin (); пиксел.шоу (); minpixels.show ();

// Бага зэрэг animationSerial.println хийх ("SUNRISE"); нар мандах (); саатал (1000); Serial.println ("SUNSET"); нар жаргах (); пиксел.шоу (); Serial.println ("БЭЛЭН"); }

Гогцоо:

void loop () {// timesync while эсэхийг шалгах (Serial.available ()> 0) {char c = Serial.read (); if (c == utch) // хэрэв мөрөнд @ байгаа бол ирэх байт /инцүүдийг уншина уу {readtime (); }} // LED -ийг эхлүүлэх, ачаалах анимацийг цэвэрлэх

if (initialize == 0) {clearpixels (); эхлүүлэх = 1; }

цаг = цаг ();

амин = минут (); хэрэв (timeset == 1 || timeset == 0) // эндээс та Time тохируулагдсан эсэхийг шалгаж болно, Timeset = FALSE байвал энд програмыг зогсоож болно, "|| timeset == 0" -г устгаарай!

{

хэрэв (oldamin <aminute || oldahour бүгдийг OFF гэж тохируулсан бол шинэ цагийг харуул {clearpixels (); ClockDisplay ();}}}

Цагийг харуулах:

хүчингүй ClockDisplay () {

oldahour = ahour;

олдамин = амин; int xhour, xmin;

хэрэв (ahour> = 12) {xhour = ahour-12; // бидэнд 24 цагийн дэлгэцийн хувьд зөвхөн 12 LED байна} өөр {xhour = ahour; } // үүнийг 5 минутын алхам болгон масштаблах xmin = (aminute /5); if (oldamin <aminute) {oldamin = aminute; тод пиксел (); } // хэлтсийн үлдсэн хэсгийг авна уу singelmin LED mmin = (aminute % 5); // модулийн оператор жишээ нь. 24 % 5 = 4! маш ашигтай: -Pixels.setBrightness (timebright); piksel.setPixelColor (xmin, piksel. Color (5, 125, 255)); // энд өнгийг өөрчилж болно! эргэн тойронд тоглох! piksel.setPixelColor (xhour, piksel. Color (255, 50, 0)); пиксел.шоу ();

// ганц бие minsfor -ийг харуулна (int m = 0; m

minpixels.setBrightness (mtimebright); minpixels.setPixelColor (м, пиксел Өнгө (255, 255, 0)); minpixels.show (); }} Цувралаас TIME мэдээллийг уншиж, боловсруулна уу

void readtime () // хэрэв бид аль хэдийн "@" тэргүүлэгчтэй болж байгаа өгөгдлийг боловсруулж, TIME Lib -д зориулсан цагийг хадгалсан бол {

ahour = Serial.parseInt (); aminute = Serial.parseInt (); секунд = Serial.parseInt (); aday = Serial.parseInt (); amonth = Serial.parseInt (); ayear = Serial.parseInt (); Serial.println ("TIMESET"); Цуваа.хэвлэх (ahour); Serial.print (":"); Serial.println (aminute); setTime (ahour, aminute, asecond, aday, amonth, ayear); }

Бүгдийг цэвэрлэ

void clearpixels () // дэлгэцийг шинэчлэхийн тулд PIXEL бүрийг унтраахаар тохируулна уу {

пиксел.begin (); minpixels.begin (); for (int i = 0; ipixels.setPixelColor (i, piksel. Color (0, 0, 0)); minpixels.setPixelColor (i, piksel. Color (0, 0, 0)); пиксел.шоу (); пиксел.show ();}}

Алхам 5: Android APP ба BT холболт

Android APP ба BT холболт
Android APP ба BT холболт
Android APP ба BT холболт
Android APP ба BT холболт
Android APP ба BT холболт
Android APP ба BT холболт

Хэрэв та өмнөх алхмуудыг амжилттай хийж чадсан бол одоо BT модулийг холбож болно. (баудрууд таарч байгаа гэдэгт итгэлтэй байна гэж найдаж байна). TX & RX шугамыг давахаа бүү мартаарай:-)

Апп -ыг татаж суулгаад BT гогцоотойгоо хослуулан програмаа эхлүүлээд донглуугаа холбоод гар утсаараа цагийг синхрончлоорой. APP нь үндсэндээ бидний өмнөх шиг хийдэг. Энэ нь зүгээр л системийн цагаар үүсгэсэн @hh/mm/ss/dd/mm/YYYY -ийг илгээдэг бөгөөд би APPInventor AIA файл болон дараагийн алхам (тайлбарыг сонирхож буй хүмүүст) өгөх болно.

Алхам 6: APPInventor

APP зохион бүтээгч
APP зохион бүтээгч
APP зохион бүтээгч
APP зохион бүтээгч

APP Inventor -ийг ашиглахад тун хялбар бөгөөд ийм энгийн програмыг ашиглахад үнэтэй юм.

Хэрэв та шинэ төсөл хийвэл DESIGNER дэлгэц дээр өөрийгөө олох болно. (Зураг 1) Энд бид хүснэгт, товчлуур, мэдрэгч болон бусад элементүүдийг нэмж ашиглах боломжтой. Манай тохиолдолд бидэнд дараах зүйлс хэрэгтэй болно.

  • хүснэгт (бүх элементүүдийг тэгшлэх)
  • жагсаалт сонгогч (бидний холбосон BT төхөөрөмжийг сонгоход зориулагдсан)
  • товчлуур (BT -ээс дээш цагаар галлах)
  • зарим шошго (бодит цаг, огноог харуулах)
  • цаг мэдрэгч (цагийг сэргээх)
  • bluetooth клиент мэдрэгч (холболт)

Тэдгээрийг нэмэх нь чирэх, буулгахтай адил хялбар юм! 2 -р зураг дээр та BLOCKS дэлгэц дээрх "APP" -ийн тоймыг харж болно. Энэ бол үндсэндээ бүх "ид шид" тохиолддог зүйл юм. Дээд талд нь би цаг хугацаа, огноог хадгалахын тулд зарим хувьсагчийг үүсгэсэн. Зүүн дээд буланд байгаа эхний блок нь хосолсон BT төхөөрөмжүүдийн жагсаалт бүхий жагсаалтыг сонгогч элементийг эхлүүлэх болно. Хоёрдахь блок нь бид өмнө нь сонгосон элементийг юу хийхээ шийддэг. За, бид үүнд холбогдохыг хүсч байна.

Хэрэв та дараагийн блокыг сайтар ажиглавал BT статус "холбогдсон" тохиолдолд BT мессежийг бид үүсгэж байгааг харж болно. Энэ нь бидний өмнө SerialMonitor -д бичсэнтэй адил юм. Зүүн талд байгаа сүүлийн блок нь бидэнд цагийг харуулах тэргүүлэх тэгүүдийг өгөх болно (жишээ нь. 01:08). Баруун талд та цагны элементийг ашигладаг бидний хамгийн сүүлийн блокыг олох боломжтой. Энд бид хувьсагчдыг шинэчилж цифрүүдийн процедуртай нэгтгэх бөгөөд энэ нь 1000 м тутамд тохиолддог (анхдагч тохиргоо, үүнийг дизайнер горимд өөрчлөх) Энэ бол товч тодорхойлолт, гэхдээ APPInventor нь үнэхээр хялбар байдаг:-) Магадгүй iOS эсвэл WindowsPhone-д зориулсан програм бичих хүсэлтэй хүмүүс байдаг. (агуу байх болно)

Миний зааварчилгаа танд таалагдсан гэж найдаж байна! Шинэ ханын цагаа сайхан өнгөрүүлээрэй! Магадгүй та хайртай хүндээ бэлэглэхийг хүсч магадгүй (X-Mas-ийн улирал):-)

Тэгээд ямар нэгэн асуулт байвал надаас асуугаарай.

Хүндэтгэсэн, Merry X-Mas.

Зөвлөмж болгож буй: