Tag Archive for 'arduino'

Arduino og ljósdíóður

Ég fann gífurlega þörf fyrir að föndra með rafmagn í gær svo ég ákvað að setja saman þrívíðan tening úr ljósdíóðum. Hér gefur að líta aðstæður á stofuborðinu þegar þetta fór loksins að virka:

Kubburinn er þannig uppbyggður að katóður í hverju plani eru allar tengdar saman og svo er hver dálkur tengdur saman. Þetta þýðir að ekki er hægt að stýra hverri einustu ljósdíóðu beint, sem aftur þýðir að ekki er hægt að kveikja á mörgum díóðum samtímis. Bæði þolir Arduino örstýringin ekki allan strauminn sem myndi þurfa, auk þess sem það myndi renna straumur í gegnum díóður sem ég vil ekki hafa kveikt á. Þá er notast við fyrirbæri sem kallast á ensku persistence of vision, sem ég man ekki í augnablikinu hvað heitir á íslensku. Augun í okkur mannfólkinu virka á ca. 25 riðum, sem þýðir að sjónin okkar uppfærist 25 sinnum á sekúndu. Ef ég vil láta líta út fyrir að það logi á tveimur díóðum þrátt fyrir að geta bara kveikt á einni í einu, þá einfaldlega blikka ég á milli þeirra mjög hratt, a.m.k. hraðar en 25 sinnum á sekúndu, þannig að okkur sýnist díóðurnar loga samtímis. Hugsanlega sýnist okkur þó ljósmagnið vera vera minna, þ.e. díóðurnar gætu virst daufari.

 Ég svindlaði dálítið og notaði kóða frá www.stationinthemetro.com, kóðinn notast við aðferðina sem ég var að lýsa hér að ofan. Kosturinn við þessa aðferð er að ég þarf ekki að nota transistor eða multiplexer til þess að senda boð á díóðurnar, heldur get ég tengt 9 dálka og 3 plön beint í stýringuna.

Jæja, nú þarf ég að hætta þessu blaðri og sýna einhverjar niðurstöður! Hér gefur að líta afraksturinn:


Led Cube 3×3 Arduino from Sævar Magnússon on Vimeo.

Arduino

Ég var að fá í hendurnar Arduino þróunarborð. Arduino er það sem er hipp og kúl í rafeindatækni-fikti í dag, mér leist vel á þetta og ákvað að prófa. Arduino þróunarborðið er mjög lítið, eða 6.9 x 5.3cm, og getur keyrt á USB spennufæðingu einni saman. Það gerir það að verkum að það er einstaklega meðfærilegt og ekki spillir að það kostar einungis $34.95 á SparkFun.

Þetta þróunarborð er byggt á ATMega 168 örstýringu og keyrir á 16 MHz. Það hefur 14 stafræna I/O pinna (af þeim 14 geta 6 verið PWM úttak), 6 hliðræna inntakspinna og hefur um 16 KB af flash minni. Forritunarumhverfið fyrir Arduino miðar að því að vera einfalt svo allir geti verið með, en er um leið mjög sveigjanlegt svo reyndir notendur geti gert flókna hluti. Það er byggt á Processing þróunarumhverfinu.

Þegar ég fékk borðið í hendurnar byrjaði ég á að setja upp USB driverinn. Það gekk ekki alveg nógu vel þar sem leiðbeiningar voru allar fyrir Windows XP en ég var að nota Windows Vista. Lykilatriðið var að leyfa Windows ekki að leita að driver á Windows Update, heldur fara handvirkt inn í Device Manager, hægrismella á USB device sem er með gulum þríhyrning, og velja ‘Update driver’. Þá er hægt að benda á möppuna með réttum driver. Ég þurfti reyndar líka að sækja driverinn beint frá FTDI.

Næst sótti ég Arduino þróunarumhverfið. Einfaldlega unzippa því og opna arduino.exe. Fyrsta prufuforritið er að sjálfsögðu klassískt: Blikka díóðu. Með Arduino forritinu fylgja nokkur sýnidæmi og Blink er eitt af þeim.

int ledPin = 13;                // LED tengd í digital I/O 13
void setup()                    // setup() er keyrt 1x, í byrjun forrits.
{
  pinMode(ledPin, OUTPUT);      // setur pinna 13 sem output
}
 
void loop()                     // lykkja sem keyrir út í hið óendanlega
{
  digitalWrite(ledPin, HIGH);   // Kveikt á díóðu
  delay(1000);                  // Beðið í 1 sekúndu
  digitalWrite(ledPin, LOW);    // Slökkt á díóðu
  delay(1000);                  // Beðið í 1 sekúndu
}

Þetta er með einfaldari blikka-díóðu tilraunum sem ég hef gert, og hef ég prófað það á nokkrum tegundum örstýringa. Ég kompælaði kóðann og sendi hann í kubbinn og það svínvirkaði. Ég þurfti ekki einu sinni að tengja díóðu því pinni 13 er tengdur í innbyggða ljósdíóðu!