Arduino + LEDs + Fan = POV "APPLAUSE" Mag-sign: 6 Mga Hakbang (may Mga Larawan)

Arduino + LEDs + Fan = POV "APPLAUSE" Mag-sign: 6 Mga Hakbang (may Mga Larawan)

Talaan ng mga Nilalaman:

Anonim

Nakita ko ang mga aparatong POV (Persistence of Vision) sa iba pang mga Instructable at naisip na gusto kong gumawa ng isa at lagi kong nais ang aking sariling "APPLAUSE" sign. Ang susunod na pagpapabuti ay upang gawin ito sa tuwing ipapasok ko ang kuwarto.:) Siguro sinasabi nito, "At narito si Charlie!" Ngunit iyon ay para sa ibang oras.

Kaya nakuha ko ang isang tagahanga sa isang benta sa garahe, nagbasa ng ilang, nakahanap ng ilang mga code at sa ibaba ay isang video ng aking makina sa aksyon.

Nagsimula ako sa magagandang code mula sa isang Instructable ni Scott Mitchell - "Arduino Bike POV" ngunit kung ano ang natapos ko ay ang kanyang code ay lubos na nababalanse. Hindi ko magawa ito upang magtrabaho sa una at kaya patuloy kong binabago ang code. Ang aking problema ay walang kinalaman sa code. Kaya ako ay babalik sa kanyang code at subukang muli dahil ang kanyang ay mas generic at gagana nang mas madali gamit ang iba't ibang mga parirala. Ngunit iyon ay para sa mamaya din.

Ang video sa ibaba ay nagpapakita ng POV sa pagkilos. Hindi ito tila bilang sirang o naka-disconnect sa totoong buhay tulad ng ginagawa nito sa video.

Mga Kagamitan:

Hakbang 1: Kumuha ng Bagay-bagay

Mga bagay na ginamit sa proyektong ito:

maliit na tagahanga - pagbebenta ng garahe - 2.00

misc wood - aking basement - 0.00

isang haba ng plastic 15 ng 2.5 pulgada - ang aking basement - 0.00

isang Arduino - Gumagamit ako ng isang Ardweeny mula sa SolarBotics - mga 10.00

7 pulang LEDs - mayroon na - 1.00

7 - 330 oum resistors - 3.00

Halls Sensor - Nakatanggap ako mula sa Adafruit - US5881LUA - 2.00

1 10k risistor na gagamitin sa sensor ng Halls - 1.00

2 magneto mula sa lokal na libangan ng libangan - 1.00

kakailanganin din: wire, 9v battery, screws, Loctite 5 min epoxy, maliit na PCB mula sa Radio Shack

Hakbang 2: Simulan ang Assembly

1. Gupitin ang isang maliit - 3 by 5 - piraso ng 1/4 inch playwud at epoxied sa fan hub. Sa ngayon ang epoxy ay ang tanging bagay na hawak ang LED assembly sa fan. Marahil ang ilang mga kawad ng kawad para sa kaligtasan ay magiging mabuti. Sa tingin ko ay idaragdag ko ang mga ito sa ibang pagkakataon.

2. Pinutol ko ang 15 na 2.5 na piraso ng plastik mula sa ilang stock na mayroon ako. Maaaring magkaroon ng mga sheet ng plastic sa Home Depot. Ako lang guessed sa laki at ito ay naging medyo magandang.

3. Mag-drill 7 butas sa isang dulo tungkol sa 3/4 ng isang pulgada bukod para sa LEDs. Natagpuan ko ang isang laki ng drill na nagpapahintulot sa LEDs na pipi sa butas masyadong mahigpit. Kung hindi sila magkasya nang maayos, nais kong magamit ang isang dab ng mainit na pandikit upang manatili sa lugar.

4. Ipasok ang 7 LEDs sa butas.

5. Ilagay ang plastik sa 3 by 5 playwith na may maliliit na tornilyo na kahoy.

Hakbang 3: Tapusin ang Holder ng Fan

Ito ay depende sa fan na iyong ginagamit. Pinutol ko ang isang bingaw ng isang piraso ng 1 sa 6 at nakapasok sa likod ng tagahanga sa bingaw at pagkatapos ay ginamit ang wire tie upang ma-secure ang fan sa board. Kailangan ko bang itaas ang buong unit kaya ginamit ko ang isang pares ng 1 sa 3 s upang dalhin ang fan hanggang sa kung saan hindi ito pindutin ang base board. Nagdagdag ako ng isang piraso ng playwud sa likod upang ang epekto ay maaaring mas mahusay na nakita. Pagkatapos ay ipininta ko ang lahat ng itim.

Hakbang 4: Ardweeny & LEDS

Ang Ardweeny mula sa Solarbotics ay dumating sa isang kit at nangangailangan ito ng mga 30 minuto upang maghinang ang mga piraso magkasama. Ito ay inilaan upang gamitin sa isang breadboard at pagkatapos na ako ay may bread boarded sa circuit, ako maghinang ito sa isang maliit na piraso ng PCB board na kung saan maaari ko sa ibang pagkakataon maglakip sa playwud. Ang Ardweeny ay magsulid kasama ang LEDs.

Matapos ang pagtatayo ng Ardweeny, oras na upang magamit ang LEDs. Ginamit ko ang isang hubad tanso wire bilang isang karaniwang lupa wire. Ang bawat isa sa mga maikling wires mula sa LEDs ay soldered sa wire tanso at pagkatapos ay ang tanso wire ay konektado sa isang lupa sa Ardweeny. Mula sa mas mahaba, positibong binti, ang LED ay naglakip ng kawad sa Ardweeny at isama ang isang 330 oum na risistor sa circuit.

Nakakonekta ko ang LEDs sa Pins 1,2,3,4,5,6,7 na may panlabas na karamihan sa LED na konektado sa pin 1.

Matapos ang lahat ng mga koneksyon ay ginawa, ilakip ang Ardweeny sa playwud. Ginamit ko ang isang maliit na tornilyo sa pamamagitan ng PCB.

Hakbang 5: Halls Sensor & Battery

Sensor ng Hall:

Ilakip ang Halls Sensor sa dulo ng plastic. Ako unang soldered ang sensor sa isang maliit na piraso ng PCB at pagkatapos ay naka-attach ang PCB sa plastic na may isang maliit na tornilyo.

Upang ikonekta ang sensor ginamit ko ang sumusunod na impormasyon na nakuha ko sa Adafruit: "Nagpapatakbo sa 3.5V hanggang sa 24V.Upang gamitin ang pagkonekta ng kuryente sa pin 1 (lahat ng paraan papuntang kaliwa), lupa sa pin 2 (gitna) at pagkatapos ay isang 10K pull up risistor mula sa pin 3 hanggang sa kapangyarihan.Kaya makinig sa pin 3, kapag ang timog poste ng isang magnet ay malapit sa harap ng sensor, ang pin 3 ay bababa sa 0V kung hindi man ay mananatili ito sa anumang koneksyon ng pullup ay konektado. Walang nangyayari kung ang kalapit na magneto ay nasa malapit (unipolar). "

Magnet para sa sensor:

Naglagay ako ng isang maliit na magneto sa dulo ng isang dowel at nakabitin ang dowel sa support ng fan. Ginawa ko ito sa magkabilang panig ng fan. Mahalaga na ang isa sa mga magnet ay may tagiliran sa timog nito at ang iba pang magneto ay nasa hilagang bahagi nito.

ideya: Sensor na ito ay isang uri ng aldaba upang ito ay alinman sa isang 1 o isang 0. Kapag magsulid ang nagsisimula, ang unang magneto ay i-on ang LEDS sa at kapag ito ay nakakakuha sa iba pang pang-akit, ito ay i-off ang mga ito. Siyempre ito ay nasa konsyerto kasama ang software.

Ang lilang wire ay papunta sa analog pin 0, itim sa lupa at pula sa A + pin (5 bolta na output).

Baterya:

Ang 9V baterya ay dapat ilagay kung saan ito ay kumilos bilang isang counter balanse para sa umiikot na plastic. Kung ang plastik ay hindi balanseng medyo maganda, ito ay magugol sa buong tagahanga kapag umabot ito sa bilis. Ginamit ko ang isang kumbinasyon ng goma band at kawad relasyon upang i-hold ito sa lugar ngunit maaari pa ring makakuha ng ito kung kailangan nito kapalit

Wire ang positibo at negatibong mga wire mula sa baterya hanggang sa naaangkop na mga pin. Kasama ko ang isang switch kaya maaari kong i-off ang Ardweeny off. Ang switch ay naka-attach sa playwith na may double back tape.

Hakbang 6: Ang Kodigo

Isang paghahanap para sa POV proyekto nahanap code para sa isang proyekto Bike POV.

Sa ibaba ay kung ano ang ginamit ko ngunit ito ay isang malayo sumisigaw mula sa orihinal. Ang orihinal ay mas malawak at pinakintab ngunit nagsimula ako sa kanyang code at dapat magbigay ng kredito sa kanya.

Din ang sketch kasama ang isang font.h file na kung saan ko natagpuan matapos na maghanap sa internet. Hindi ako sigurado na ito ay ang font.h na isang bahagi ng orihinal. Isinama ko ang mina sa ibaba..

// Code para sa proyekto ng Arduino Bike POV

// Arduino Bike POV

//

/ / ni Scott Mitchell

// www.openobject.org

// Open Source Urbanism

//

// Copyright (C) 2008 Scott Mitchell 12-10-2008

//

// Ang programang ito ay libreng software: maaari mong ipamahagi ito at / o baguhin

/ / ito sa ilalim ng mga tuntunin ng GNU General Public License na inilathala ng

// ang Free Software Foundation, alinman sa bersyon 3 ng Lisensya, o

// (sa iyong pagpipilian) anumang ibang bersyon.

//

//============================================================

// 6/2011 mabigat na binago ng c. Dubois para sa aking proyekto sa POV

// Hall sensor ay isang switch kaya ginamit ko ang ibang code para dito

/ / Ginamit din ang isang font.h na nakita ko

// ------------------------------------------------------------

// pagtukoy sa alpabeto

# isama ang "font.h"

/ / tukuyin ang Arduino LED pin na ginagamit

const int LEDpins = {

1,2,3,4,5,6,7};

/ / bilang ng LEDs

const int charHeight = sizeof (LEDpins);

const int charWidth = 5;

/ / setup ng sensor

const int sensorPIN = 0; / / tukuyin ang Arduino sensor pin

/ boolean sensorFlag = false; // mga tindahan ng estado ng sensor

int sensVal; // variable upang iimbak ang halaga na nagmumula sa sensor

const char textString = "APPLAUSE";

walang bisa setup ()

{

pinMode (13, Output);

pinMode (1, Output);

pinMode (2, Output);

pinMode (3, Output);

pinMode (4, Output);

pinMode (5, Output);

pinMode (6, Output);

pinMode (7, Output);

// Serial.begin (9600);

}

walang bisa loop ()

{

/ / turn on Led para sa isang bilog sa gitna at patunay na arduino ay pinalakas

digitalWrite (13, HIGH); / / Itakda ang LED sa

sensVal = analogRead (sensorPIN); / / basahin ang Hall Effect Sensor

// Serial.println (sensVal);

/ / pagkaantala (500);

/ / Nagkaroon ng kahirapan dito

/ / Dahil ito ay isang lumipat switch hall marahil shoiuld lamang ang digital na basahin

kung (sensVal! = 1023) {

/ print ang bawat titik ng textString

para sa (int k = 0; k

printLetter (textString k);

}

}

}

walang bisa printLetter (char ch)

{

/ / tiyakin na ang karakter ay nasa hangganan ng alpabeto (tinukoy ng file ng font.h)

/ / kung hindi, gawin itong isang blangko na karakter

kung (ch <32 || ch> 126) {

ch = 32;

}

/ ibawas ang espasyo ng character (convert ang ASCII number sa numero ng index ng font)

ch - = 32;

// hakbang sa bawat byte ng array ng character

para sa (int i = 0; i

byte b = font ch i;

/ / bit shift sa pamamagitan ng byte at output ito sa pin

para sa (int j = 0; j

digitalWrite (LEDpins j, !! (b & (1 << j)));

}

// puwang sa pagitan ng mga haligi

delayMicroseconds (900);

}

/ / i-clear ang LEDs

digitalWrite (1, mababa); / / Itakda ang LED sa

digitalWrite (2, mababa); / / Itakda ang LED sa

digitalWrite (3, mababa); / / Itakda ang LED sa

digitalWrite (4, mababa); / / Itakda ang LED sa

digitalWrite (5, mababa); / / Itakda ang LED sa

digitalWrite (6, mababa); / / Itakda ang LED sa

digitalWrite (7, mababa); / / Itakda ang LED sa

// puwang sa pagitan ng mga titik

delayMicroseconds (2500);

}

--------------------------------------

----------------------------------------

///============================================================

// Arduino Bike POV

// font.h

//

/ / ni Scott Mitchell

// www.openobject.org

// Open Source Urbanism

//

// Copyright (C) 2008 Scott Mitchell 12-10-2008

//

// Ang programang ito ay libreng software: maaari mong ipamahagi ito at / o baguhin

/ / ito sa ilalim ng mga tuntunin ng GNU General Public License na inilathala ng

// ang Free Software Foundation, alinman sa bersyon 3 ng Lisensya, o

// (sa iyong pagpipilian) anumang ibang bersyon.

//

// Ang program na ito ay ipinamamahagi sa pag-asa na ito ay magiging kapaki-pakinabang, // ngunit WALANG ANUMANG WARRANTY; nang walang kahit na ang ipinahiwatig na warranty ng

// MERCHANTABILITY o KAANGKUPAN PARA SA ISANG PARTIKULAR NA LAYUNIN. Tingnan ang

// GNU General Public License para sa higit pang mga detalye.

//

// Kopya ng GNU General Public License

/ / matatagpuan sa .

//

// B4.1

// Huling Binago: Oktubre 13, 2008

//============================================================

// pagtukoy sa alpabeto

// ascii 7x5 side-feeding character para sa mga humantong module

/ addapted mula sa

/ / const byte font 5 = {

const unsigned char font 95 5 = {

{0x00,0x00,0x00,0x00,0x00}, // 0x20 32

{0x00,0x00,0x6f, 0x00,0x00}, //! 0x21 33

{0x00,0x07,0x00,0x07,0x00}, // "0x22 34

{0x14,0x7f, 0x14,0x7f, 0x14}, // # 0x23 35

{0x00,0x07,0x04,0x1e, 0x00}, // $ 0x24 36

{0x23,0x13,0x08,0x64,0x62}, //% 0x25 37

{0x36,0x49,0x56,0x20,0x50}, // & 0x26 38

{0x00,0x00,0x07,0x00,0x00}, // '0x27 39

{0x00,0x1c, 0x22,0x41,0x00}, // (0x28 40

{0x00,0x41,0x22,0x1c, 0x00}, //) 0x29 41

{0x14,0x08,0x3e, 0x08,0x14}, // * 0x2a 42

{0x08,0x08,0x3e, 0x08,0x08}, // + 0x2b 43

{0x00,0x50,0x30,0x00,0x00}, //, 0x2c 44

{0x08,0x08,0x08,0x08,0x08}, // - 0x2d 45

{0x00,0x60,0x60,0x00,0x00}, //. 0x2e 46

{0x20,0x10,0x08,0x04,0x02}, // / 0x2f 47

{0x3e, 0x51,0x49,0x45,0x3e}, // 0 0x30 48

{0x00,0x42,0x7f, 0x40,0x00}, // 1 0x31 49

{0x42,0x61,0x51,0x49,0x46}, // 2 0x32 50

{0x21,0x41,0x45,0x4b, 0x31}, // 3 0x33 51

{0x18,0x14,0x12,0x7f, 0x10}, // 4 0x34 52

{0x27,0x45,0x45,0x45,0x39}, // 5 0x35 53

{0x3c, 0x4a, 0x49,0x49,0x30}, // 6 0x36 54

{0x01,0x71,0x09,0x05,0x03}, // 7 0x37 55

{0x36,0x49,0x49,0x49,0x36}, // 8 0x38 56

{0x06,0x49,0x49,0x29,0x1e}, // 9 0x39 57

{0x00,0x36,0x36,0x00,0x00}, //: 0x3a 58

{0x00,0x56,0x36,0x00,0x00}, //; 0x3b 59

{0x08,0x14,0x22,0x41,0x00}, // <0x3c 60

{0x14,0x14,0x14,0x14,0x14}, // = 0x3d 61

{0x00,0x41,0x22,0x14,0x08}, //> 0x3e 62

{0x02,0x01,0x51,0x09,0x06}, //? 0x3f 63

{0x3e, 0x41,0x5d, 0x49,0x4e}, // @ 0x40 64

{0x7e, 0x09,0x09,0x09,0x7e}, // A 0x41 65

{0x7f, 0x49,0x49,0x49,0x36}, // B 0x42 66

{0x3e, 0x41,0x41,0x41,0x22}, // C 0x43 67

{0x7f, 0x41,0x41,0x41,0x3e}, // D 0x44 68

{0x7f, 0x49,0x49,0x49,0x41}, // E 0x45 69

{0x7f, 0x09,0x09,0x09,0x01}, // F 0x46 70

{0x3e, 0x41,0x49,0x49,0x7a}, // G 0x47 71

{0x7f, 0x08,0x08,0x08,0x7f}, // H 0x48 72

{0x00,0x41,0x7f, 0x41,0x00}, // I 0x49 73

{0x20,0x40,0x41,0x3f, 0x01}, // J 0x4a 74

{0x7f, 0x08,0x14,0x22,0x41}, // K 0x4b 75

{0x7f, 0x40,0x40,0x40,0x40}, // L 0x4c 76

{0x7f, 0x02,0x0c, 0x02,0x7f}, // M 0x4d 77

{0x7f, 0x04,0x08,0x10,0x7f}, // N 0x4e 78

{0x3e, 0x41,0x41,0x41,0x3e}, // O 0x4f 79

{0x7f, 0x09,0x09,0x09,0x06}, // P 0x50 80

{0x3e, 0x41,0x51,0x21,0x5e}, // Q 0x51 81

{0x7f, 0x09,0x19,0x29,0x46}, // R 0x52 82

{0x46,0x49,0x49,0x49,0x31}, // S 0x53 83

{0x01,0x01,0x7f, 0x01,0x01}, // T 0x54 84

{0x3f, 0x40,0x40,0x40,0x3f}, // U 0x55 85

{0x0f, 0x30,0x40,0x30,0x0f}, // V 0x56 86

{0x3f, 0x40,0x30,0x40,0x3f}, // W 0x57 87

{0x63,0x14,0x08,0x14,0x63}, // X 0x58 88

{0x07,0x08,0x70,0x08,0x07}, // Y 0x59 89

{0x61,0x51,0x49,0x45,0x43}, // Z 0x5a 90

{0x3c, 0x4a, 0x49,0x29,0x1e}, // 0x5b 91

{0x02,0x04,0x08,0x10,0x20}, // 0x5c 92

{0x00,0x41,0x7f, 0x00,0x00}, // 0x5d 93

{0x04,0x02,0x01,0x02,0x04}, // ^ 0x5e 94

{0x40,0x40,0x40,0x40,0x40}, // _ 0x5f 95

{0x00,0x00,0x03,0x04,0x00}, // `0x60 96

{0x20,0x54,0x54,0x54,0x78}, // a 0x61 97

{0x7f, 0x48,0x44,0x44,0x38}, // b 0x62 98

{0x38,0x44,0x44,0x44,0x20}, // c 0x63 99

{0x38,0x44,0x44,0x48,0x7f}, // d 0x64 100

{0x38,0x54,0x54,0x54,0x18}, // e 0x65 101

{0x08,0x7e, 0x09,0x01,0x02}, // f 0x66 102

{0x0c, 0x52,0x52,0x52,0x3e}, // g 0x67 103

{0x7f, 0x08,0x04,0x04,0x78}, // h 0x68 104

{0x00,0x44,0x7d, 0x40,0x00}, // i 0x69 105

{0x20,0x40,0x44,0x3d, 0x00}, // j 0x6a 106

{0x00,0x7f, 0x10,0x28,0x44}, // k 0x6b 107

{0x00,0x41,0x7f, 0x40,0x00}, // l 0x6c 108

{0x7c, 0x04,0x18,0x04,0x78}, // m 0x6d 109

{0x7c, 0x08,0x04,0x04,0x78}, // n 0x6e 110

{0x38,0x44,0x44,0x44,0x38}, // o 0x6f 111

{0x7c, 0x14,0x14,0x14,0x08}, // p 0x70 112

{0x08,0x14,0x14,0x18,0x7c}, // q 0x71 113

{0x7c, 0x08,0x04,0x04,0x08}, // r 0x72 114

{0x48,0x54,0x54,0x54,0x20}, // s 0x73 115

{0x04,0x3f, 0x44,0x40,0x20}, // t 0x74 116

{0x3c, 0x40,0x40,0x20,0x7c}, // u 0x75 117

{0x1c, 0x20,0x40,0x20,0x1c}, // v 0x76 118

{0x3c, 0x40,0x30,0x40,0x3c}, // w 0x77 119

{0x44,0x28,0x10,0x28,0x44}, // x 0x78 120

{0x0c, 0x50,0x50,0x50,0x3c}, // y 0x79 121

{0x44,0x64,0x54,0x4c, 0x44}, // z 0x7a 122

{0x00,0x08,0x36,0x41,0x41}, // {0x7b 123

{0x00,0x00,0x7f, 0x00,0x00}, // | 0x7c 124

{0x41,0x41,0x36,0x08,0x00}, //} 0x7d 125

{0x04,0x02,0x04,0x08,0x04}, // ~ 0x7e 126

};

/*

Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License

Ang pahinang ito ay huling binago noong 14:41, 11 Enero 2009. Ang pahinang ito ay na-access nang 1,477 beses.

Ang nilalaman ay makukuha sa ilalim ng Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia License.

Tungkol sa Open Source Urbanism

Mga pagtanggi

Pinapagana ng MediaWiki

*/

Finalist sa

LED Contest