Arduino + LED + Fan = POV "APPLAUSE" Tanda: 6 Langkah (dengan Gambar)

Arduino + LED + Fan = POV "APPLAUSE" Tanda: 6 Langkah (dengan Gambar)

Isi kandungan:

Anonim

Saya melihat peranti POV (Persistence of Vision) ini pada Instructables lain dan fikir saya ingin membuatnya dan saya selalu mahu tanda "APPLAUSE" saya sendiri. Penambahbaikan seterusnya adalah untuk meneruskannya setiap kali saya memasuki bilik.:) Mungkin ia berkata, "Dan inilah Charlie!" Tetapi itu adalah untuk masa yang lain.

Jadi saya mendapat peminat di jualan garaj, melakukan beberapa bacaan, mendapati beberapa kod dan di bawah adalah video mesin saya dalam tindakan.

Saya bermula dengan kod yang baik dari sebuah Instructable oleh Scott Mitchell - "Arduino Bike POV" tetapi apa yang saya berakhir dengan kodnya sangat parah. Saya tidak dapat bekerja pada mulanya dan jadi saya terus menukar kod itu. Ternyata masalah saya tiada kaitan dengan kod. Jadi saya akan kembali ke kodanya dan cuba lagi kerana ia lebih generik dan akan bekerja lebih mudah dengan frasa yang berbeza. Tetapi itu untuk kemudian juga.

Video di bawah menunjukkan POV dalam tindakan. Ia tidak kelihatan seperti pecah atau terputus dalam kehidupan sebenar seperti yang berlaku pada video.

Bekalan:

Langkah 1: Dapatkan Stuff

Item yang digunakan dalam projek ini:

kipas kecil - jualan garage - 2.00

kayu misc - ruang bawah tanah saya - 0.00

panjang plastik 15 hingga 2.5 inci - ruang bawah tanah saya - 0.00

Arduino - Saya menggunakan Ardweeny dari SolarBotics - kira-kira 10.00

7 LED merah - sudah ada - 1.00

7 - 330 ohm resistor - 3.00

Sensor Halls - Saya mendapat dari Adafruit - US5881LUA - 2.00

1 10k perintang yang akan digunakan dengan sensor Halls - 1.00

2 magnet dari kedai hobi tempatan - 1.00

juga akan memerlukan: wayar, bateri 9v, skru, Loctite 5 min epoksi, PCB kecil dari Radio Shack

Langkah 2: Mulakan Perhimpunan

1. Potong kecil - 3 hingga 5 - sekeping papan lapis 1/4 inci dan epoxied ke hab kipas. Sekarang epoksi adalah satu-satunya perkara yang memegang pemasangan LED kepada peminat. Mungkin ada hubungan dawai untuk keselamatan akan menjadi baik. Saya fikir saya akan menambahnya nanti.

2. Saya memotong plastik sebanyak 15 hingga 2.5 inci dari beberapa stok yang saya ada. Lembaran plastik boleh didapati di Home Depot. Saya hanya meneka saiz dan ternyata cukup baik.

3. gerakkan 7 lubang pada satu hujung kira-kira 3/4 inci selain untuk LED. Saya dapati saiz gerudi yang membolehkan LED ditekan ke lubang-lubang yang agak ketat. Jika mereka tidak sesuai dengan baik, saya akan menggunakan gam panas supaya tetap ada.

4. Masukkan 7 LED ke dalam lubang.

5. Pasang plastik kepada 3 oleh 5 papan lapis dengan skru kayu kecil.

Langkah 3: Selesaikan Pemegang Kipas

Ini bergantung kepada kipas yang anda gunakan. Saya memotong takuk dari 1 hingga 6 dan mampu memasukkan bahagian belakang kipas ke takik dan kemudian menggunakan tali kawat untuk menjamin kipas ke papan. Saya perlu menaikkan keseluruhan unit jadi saya menggunakan beberapa 1 by 3 s untuk membawa kipas ke mana ia tidak akan memukul papan asas. Saya menambah sekeping papan lapis ke belakang supaya kesannya lebih baik dilihat. Saya kemudian melukis semuanya hitam.

Langkah 4: Ardweeny & LEDS

The Ardweeny dari Solarbotics datang dalam kit dan memerlukan masa kira-kira 30 minit untuk menyolder kepingan bersama. Ia bertujuan untuk digunakan pada papan roti dan selepas saya mempunyai roti di atas litar, saya menyerahkannya kepada sekeping kecil papan PCB yang boleh saya lampirkan pada papan lapis. The Ardweeny akan berputar bersama-sama dengan LED.

Selepas Ardweeny dibina, sudah tiba masanya untuk menghidupkan LED. Saya menggunakan dawai tembaga yang telanjang sebagai wayar tanah bersama. Setiap wayar pendek dari LED disalurkan ke wayar tembaga dan kemudian wayar tembaga disambungkan ke tanah di Ardweeny. Dari kaki yang lebih panjang, positif, LED menyambungkan wayar ke Ardweeny dan memasukkan 330 ohm perintang dalam litar.

Saya menyambungkan LED ke pin 1,2,3,4,5,6,7 dengan paling LED luar disambungkan ke pin 1.

Selepas semua sambungan dibuat, pasangkan Ardweeny ke papan lapis. Saya menggunakan skru kecil melalui PCB.

Langkah 5: Sensor Dewan & Bateri

Sensor Dewan:

Lampirkan Sensor Halls ke hujung plastik. Saya mula-mula mematerkan sensor ke sekeping kecil PCB dan kemudian melekat PCB ke plastik dengan skru kecil.

Untuk menyambung sensor saya menggunakan maklumat berikut yang saya dapat di Adafruit: "Berjalan pada 3.5V sehingga 24V Untuk menggunakan kuasa sambungkan ke pin 1 (sepanjang jalan ke kiri), tanah ke pin 2 (tengah) dan kemudian tarik 10K ke atas dari pin 3 ke kuasa., apabila tiang selatan magnet berada di hadapan sensor, pin 3 akan turun ke 0V.Jika tidak, ia akan kekal pada apa pun penghancur pullup disambungkan. Tiada berlaku jika tiang utara magnet berada berdekatan (unipolar). "

Magnet untuk sensor:

Saya memasang magnet kecil ke hujung dowel dan melekatkan dowel kepada sokongan kipas. Saya melakukan ini di kedua-dua belah kipas. Adalah penting bahawa salah satu magnet mempunyai sisi selatan menghadap ke luar dan magnet lain mempunyai sisi utara.

idea: Sensor ini adalah jenis kait supaya ia sama ada 1 atau 0. Apabila putaran bermula, magnet pertama akan menyalakan LEDS dan apabila ia mendapat magnet lain, ia akan mematikannya. Sudah tentu ini bersesuaian dengan perisian.

Kawat ungu pergi ke pin analog 0, hitam ke tanah dan merah ke A + pin (output 5 volt).

Bateri:

Bateri 9V perlu diletakkan di mana ia bertindak sebagai baki balas untuk plastik berputar. Sekiranya plastik tidak seimbang cukup baik, ia akan menggegarkan seluruh peminat apabila ia mencapai kelajuan. Saya menggunakan gabungan getah dan tali dawai untuk memegangnya tetapi masih boleh mengeluarkannya jika perlu penggantian

Wayar wayar positif dan negatif dari bateri ke pin yang sesuai. Saya termasuk suis supaya saya boleh mematikan Ardweeny. Suis dilampirkan pada papan lapis dengan pita sokongan dua kali.

Langkah 6: Kod

Carian untuk projek POV mendapati kod untuk projek Bike POV.

Di bawah adalah apa yang saya gunakan tetapi ia jauh dari asal. Asal adalah lebih komprehensif dan digilap tetapi saya mula dengan kodnya dan harus memberi kredit kepadanya.

Juga sketsa termasuk file font.h yang saya dapati selepas mencari internet. Saya tidak pasti ia adalah font.h yang merupakan sebahagian daripada asal. Saya telah memasukkan saya di bawah..

// Kod untuk projek POV Bike Arduino

// Arduino Bike POV

//

// oleh Scott Mitchell

// www.openobject.org

// Sumber Terbuka Urbanisme

//

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

//

// Program ini adalah perisian percuma: anda boleh mengagihkan semula dan / atau mengubah suai

// ia di bawah syarat GNU General Public License seperti yang diterbitkan oleh

/ Yayasan Perisian Bebas, sama ada versi 3 Lesen, atau

// (pada pilihan anda) mana-mana versi yang lebih baru.

//

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

// 6/2011 banyak diubahsuai oleh c. Dubois untuk projek POV saya

/ // Dewan sensor adalah suis jadi saya menggunakan kod yang berbeza untuknya

/ / juga menggunakan font.h yang saya dapati

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

// mentakrifkan abjad

#include "font.h"

// tentukan pin LED Arduino yang sedang digunakan

const int LEDpins = {

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

// bilangan LED

const int charHeight = sizeof (LEDpins);

const int charWidth = 5;

/ // persediaan sensor

const int sensorPIN = 0; // tentukan pin sensor Arduino

// boolean sensorFlag = false; // kedai sensor negeri

int sensVal; // berubah untuk menyimpan nilai yang datang dari sensor

const char textString = "APPLAUSE";

batal persediaan ()

{

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);

}

kekosongan gelung ()

{

// Hidupkan Led untuk bulatan di tengah dan bukti bahawa arduino berkuasa

digitalWrite (13, TINGGI); // setkan LED

sensVal = analogRead (sensorPIN); // baca Sensor Kesan Dewan

// Serial.println (sensVal);

/ / kelewatan (500);

/ / kesulitan disini

/ / kerana ia adalah suis ruang suis mungkin shoiuld hanya membaca digital

jika (sensVal! = 1023) {

// mencetak setiap huruf teksString

untuk (int k = 0; k

printLetter (textString k);

}

}

}

void printLetter (char ch)

{

// pastikan watak itu berada dalam batas abjad (ditentukan oleh fail font.h)

// jika tidak, menjadikannya watak kosong

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

ch = 32;

}

// tolak watak ruang (menukarkan nombor ASCII ke nombor indeks font)

ch - = 32;

/ / langkah melalui setiap bait array watak

untuk (int i = 0; i

byte b = font ch i;

// bit shift melalui byte dan keluarkannya ke pin

untuk (int j = 0; j

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

}

// ruang antara lajur

delayMicroseconds (900);

}

/ / jelaskan LED

digitalWrite (1, LOW); // setkan LED

digitalWrite (2, LOW); // setkan LED

digitalWrite (3, LOW); // setkan LED

digitalWrite (4, LOW); // setkan LED

digitalWrite (5, LOW); // setkan LED

digitalWrite (6, LOW); // setkan LED

digitalWrite (7, LOW); // setkan LED

/ ruang antara huruf

delayMicroseconds (2500);

}

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

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

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

// Arduino Bike POV

// font.h

//

// oleh Scott Mitchell

// www.openobject.org

// Sumber Terbuka Urbanisme

//

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

//

// Program ini adalah perisian percuma: anda boleh mengagihkan semula dan / atau mengubah suai

// ia di bawah syarat GNU General Public License seperti yang diterbitkan oleh

/ Yayasan Perisian Bebas, sama ada versi 3 Lesen, atau

// (pada pilihan anda) mana-mana versi yang lebih baru.

//

// Program ini diedarkan dengan harapan ia berguna, // tetapi TANPA JAMINAN MANA-MANA; tanpa jaminan waranti tersirat

// KEMUNGKINAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat

// GNU General Public License untuk maklumat lanjut.

//

// Salinan GNU General Public License

// boleh didapati di .

//

// B4.1

/ Terakhir diubah suai: 13 Oktober 2008

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

// mentakrifkan abjad

/ // aksara ascii makan 7x5 untuk modul yang dipimpin

/ / addapted dari

/ // const byte font 5 = {

const 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

};

/*

Lesen Australia Atribut-Bukan Komersial-Saham Sama 2.5 Australia

Laman ini diubahsuai terakhir 14:41, 11 Januari 2009. Laman ini telah diakses sebanyak 1,477 kali.

Kandungan boleh didapati di bawah Lesen Australia Atribut-Bukan Komersial-Saham Sama 2.5 Australia.

Mengenai Open Source Urbanism

Penafian

Powered by MediaWiki

*/

Finalis dalam

Peraduan LED