Arduino + LED + Fan = POV "Tepuk Tangan" Masuk: 6 Langkah (dengan Gambar)

Arduino + LED + Fan = POV "Tepuk Tangan" Masuk: 6 Langkah (dengan Gambar)

Daftar Isi:

Anonim

Saya melihat perangkat POV (Persistence of Vision) ini pada Instructables lainnya dan saya pikir saya ingin membuatnya dan saya selalu menginginkan tanda "Tepuk Tangan" saya sendiri. Perbaikan selanjutnya adalah membuatnya berjalan setiap kali saya memasuki ruangan.:) Mungkin ada yang mengatakan, "Dan inilah Charlie!" Tapi itu untuk lain waktu.

Jadi saya mendapat penggemar di obralan garasi, membaca, menemukan beberapa kode dan di bawah ini adalah video mesin saya sedang beraksi.

Saya mulai dengan kode yang bagus dari Instructable oleh Scott Mitchell - "Arduino Bike POV" tapi yang saya dapatkan adalah kodenya sangat bagus. Saya tidak bisa membuatnya bekerja pada awalnya dan jadi saya terus mengubah kode. Ternyata masalah saya tidak ada hubungannya dengan kode. Jadi saya akan kembali ke kode-nya dan mencoba lagi karena itu jauh lebih umum dan akan bekerja lebih mudah dengan frasa yang berbeda. Tapi itu untuk nanti juga.

Video di bawah ini menunjukkan POV beraksi. Tampaknya tidak rusak atau terputus dalam kehidupan nyata seperti pada video.

Persediaan:

Langkah 1: Dapatkan Barang

Item yang digunakan dalam proyek ini:

kipas kecil - penjualan garasi - 2.00

kayu misc - ruang bawah tanah saya - 0,00

panjang plastik 15 kali 2,5 inci - ruang bawah tanah saya - 0,00

sebuah Arduino - Saya menggunakan Ardweeny dari SolarBotics - sekitar pukul 10.00

7 LED merah - sudah memiliki - 1,00

7 - 330 resistor ohm - 3,00

Halls Sensor - Saya dapatkan dari Adafruit - US5881LUA - 2.00

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

2 magnet dari toko hobi lokal - 1,00

juga akan membutuhkan: kawat, baterai 9v, sekrup, Loctite 5 menit epoksi, PCB kecil dari Radio Shack

Langkah 2: Mulai Majelis

1. Potong kecil - 3 kali 5 - sepotong kayu lapis 1/4 inci dan dioxox ke hub kipas. Saat ini epoksi adalah satu-satunya yang memegang unit LED ke kipas. Mungkin beberapa ikatan kawat untuk keselamatan akan baik. Saya pikir saya akan menambahkannya nanti.

2. Saya memotong plastik berukuran 15 kali 2,5 inci dari beberapa stok yang saya miliki. Lembaran plastik bisa didapat di Home Depot. Saya hanya menebak ukurannya dan ternyata cukup bagus.

3. Bor 7 lubang di salah satu ujungnya dengan jarak sekitar 3/4 inci untuk LED. Saya menemukan ukuran bor yang memungkinkan LED untuk ditekan ke dalam lubang cukup erat. Jika mereka tidak cocok dengan baik, saya akan menggunakan setetes lem panas untuk menahannya.

4. Masukkan 7 LED ke dalam lubang.

5. Pasang plastik ke kayu lapis 3 kali 5 dengan sekrup kayu kecil.

Langkah 3: Selesaikan Fan Holder

Ini tergantung dari kipas yang Anda gunakan. Saya memotong takik dari potongan 1 kali 6 dan dapat memasukkan bagian belakang kipas ke dalam takik dan kemudian menggunakan dasi kawat untuk menahan kipas ke papan. Saya perlu menaikkan seluruh unit jadi saya menggunakan beberapa 1 dengan 3 detik untuk membawa kipas ke tempat yang tidak mengenai papan dasar. Saya menambahkan sepotong kayu lapis ke belakang sehingga efeknya bisa lebih terlihat. Saya kemudian mengecat semuanya hitam.

Langkah 4: Ardweeny & LEDS

Ardweeny dari Solarbotics datang dalam kit dan membutuhkan sekitar 30 menit untuk menyatukan potongan-potongan. Ini dimaksudkan untuk digunakan pada papan tempat memotong roti dan setelah saya memasang roti di sirkuit, saya menyoldernya ke sepotong kecil papan PCB yang pada gilirannya dapat saya pasangkan ke kayu lapis. Ardweeny akan berputar bersama dengan LED.

Setelah Ardweeny dibangun, sekarang saatnya untuk memasang LED. Saya menggunakan kawat tembaga telanjang sebagai kawat pembumian biasa. Masing-masing kabel pendek dari LED disolder ke kawat tembaga dan kemudian kawat tembaga dihubungkan ke tanah di Ardweeny. Dari kaki positif yang lebih panjang, LED memasang kabel ke Ardweeny dan memasukkan resistor 330 ohm ke dalam rangkaian.

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

Setelah semua koneksi dibuat, pasang Ardweeny ke kayu lapis. Saya menggunakan sekrup kecil melalui PCB.

Langkah 5: Halls Sensor & Baterai

Sensor Hall:

Pasang Sensor Ruang ke ujung plastik. Saya pertama-tama menyolder sensor ke sepotong kecil PCB dan kemudian menempelkan PCB ke plastik dengan sekrup kecil.

Untuk menghubungkan sensor saya menggunakan informasi berikut yang saya dapatkan di Adafruit: "Berjalan pada 3.5V hingga 24V. Untuk menggunakan daya hubungkan ke pin 1 (semua jalan ke kiri), hubungkan ke pin 2 (tengah) dan kemudian resistor tarik 10K dari pin 3 ke daya. Kemudian dengarkan pada pin 3, ketika kutub selatan magnet dekat bagian depan sensor, pin 3 akan turun ke 0V. Kalau tidak, ia akan tetap pada apa pun resistor pullup terhubung. Tidak ada yang terjadi jika kutub utara magnet dekat (unipolar). "

Magnet untuk sensor:

Saya memasang magnet kecil di ujung tangkai dan menempelkan tangkai ke penyangga kipas. Saya melakukan ini di kedua sisi kipas. Adalah penting bahwa salah satu magnet memiliki sisi selatannya menghadap keluar dan magnet lainnya memiliki sisi utaranya.

ide: Sensor ini adalah tipe kait sehingga bisa 1 atau 0. Ketika putaran dimulai, magnet pertama akan menyalakan LED dan ketika sampai ke magnet lain, itu akan mematikannya. Tentu saja ini sesuai dengan perangkat lunak.

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

Baterai:

Baterai 9V harus diletakkan di tempat yang berfungsi sebagai penghitung keseimbangan untuk plastik yang berputar. Jika plastik tidak seimbang cukup baik, itu akan mengguncang seluruh kipas saat mencapai kecepatan. Saya menggunakan kombinasi karet gelang dan ikatan kawat untuk menahannya tetapi masih bisa mengeluarkannya jika perlu diganti

Sambungkan kabel positif dan negatif dari baterai ke pin yang sesuai. Saya menyertakan sakelar sehingga saya dapat mematikan Ardweeny. Sakelar terpasang ke kayu lapis dengan selotip ganda.

Langkah 6: Kode

Pencarian untuk proyek POV menemukan kode untuk proyek POV Bike.

Di bawah ini adalah apa yang saya gunakan tetapi jauh dari aslinya. Dokumen aslinya jauh lebih komprehensif dan dipoles, tetapi saya mulai dengan kodenya dan harus memberikan kredit kepadanya.

Sketsa itu juga menyertakan file font.h yang saya temukan setelah mencari di internet. Saya tidak yakin itu font.h yang merupakan bagian dari aslinya. Saya sudah memasukkan milik saya di bawah ini..

// Kode untuk proyek Arduino Bike POV

// Arduino Bike POV

//

// oleh Scott Mitchell

// www.openobject.org

// Urbanisme Sumber Terbuka

//

// Hak Cipta (C) 2008 Scott Mitchell 12-10-2008

//

// Program ini adalah perangkat lunak bebas: Anda dapat mendistribusikan dan / atau memodifikasi

// berdasarkan ketentuan Lisensi Publik Umum GNU yang diterbitkan oleh

// Yayasan Perangkat Lunak Bebas, baik versi 3 dari Lisensi, atau

// (sesuai pilihan Anda) versi yang lebih baru.

//

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

// 6/2011 banyak dimodifikasi oleh c. Dubois untuk proyek POV saya

// Hall sensor adalah saklar jadi saya menggunakan kode yang berbeda untuk itu

// juga menggunakan font.h yang saya temukan

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

// mendefinisikan alfabet

#sertakan "font.h"

// tentukan pin LED Arduino yang digunakan

LEDpins const int = {

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

// jumlah LED

const int charHeight = sizeof (LEDpins);

const int charWidth = 5;

// pengaturan sensor

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

// boolean sensorFlag = false; // menyimpan status sensor

int sensVal; // variabel untuk menyimpan nilai yang berasal dari sensor

const char textString = "APPLAUSE";

pengaturan batal ()

{

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

}

membatalkan loop ()

{

// nyalakan Led untuk lingkaran di tengah dan buktikan bahwa Arduino diaktifkan

digitalWrite (13, HIGH); // nyalakan LED

sensVal = analogRead (sensorPIN); // baca Sensor Efek Hall

// Serial.println (sensVal);

// keterlambatan (500);

// mengalami kesulitan di sini

// karena ini adalah switch hall switch mungkin sebaiknya hanya membaca digital

if (sensVal! = 1023) {

// cetak setiap huruf dari textString

untuk (int k = 0; k

printLetter (textString k);

}

}

}

void printLetter (char ch)

{

// pastikan karakter berada dalam batas alfabet (ditentukan oleh file font.h)

// jika tidak, buat karakter kosong

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

ch = 32;

}

// kurangi karakter spasi (mengonversi angka ASCII ke nomor indeks font)

ch - = 32;

// melangkahi setiap byte dari array karakter

untuk (int i = 0; i

byte b = font ch i;

/ / bit menggeser byte dan output ke pin

untuk (int j = 0; j

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

}

// spasi antar kolom

delayMicroseconds (900);

}

// kosongkan LED

digitalWrite (1, LOW); // nyalakan LED

digitalWrite (2, LOW); // nyalakan LED

digitalWrite (3, LOW); // nyalakan LED

digitalWrite (4, LOW); // nyalakan LED

digitalWrite (5, LOW); // nyalakan LED

digitalWrite (6, LOW); // nyalakan LED

digitalWrite (7, LOW); // nyalakan LED

// spasi antar huruf

delayMicroseconds (2500);

}

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

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

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

// Arduino Bike POV

// font.h

//

// oleh Scott Mitchell

// www.openobject.org

// Urbanisme Sumber Terbuka

//

// Hak Cipta (C) 2008 Scott Mitchell 12-10-2008

//

// Program ini adalah perangkat lunak bebas: Anda dapat mendistribusikan dan / atau memodifikasi

// berdasarkan ketentuan Lisensi Publik Umum GNU yang diterbitkan oleh

// Yayasan Perangkat Lunak Bebas, baik versi 3 dari Lisensi, atau

// (sesuai pilihan Anda) versi yang lebih baru.

//

// Program ini didistribusikan dengan harapan akan bermanfaat, // tapi TANPA GARANSI APA PUN; bahkan tanpa jaminan tersirat dari

// PENJUALAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat

// Lisensi Publik Umum GNU untuk perincian lebih lanjut.

//

// Salinan Lisensi Publik Umum GNU

// dapat ditemukan di .

//

// B4.1

// Terakhir Dimodifikasi: 13 Oktober 2008

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

// mendefinisikan alfabet

// ascii 7x5 memberi makan karakter samping untuk modul yang dipimpin

// addapted dari

// font byte const 5 = {

font unsigned char char 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

};

/*

Lisensi Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia

Halaman ini terakhir diubah 14:41, 11 Januari 2009. Halaman ini telah diakses sebanyak 1.477 kali.

Konten tersedia di bawah Lisensi Creative Commons Attribution-Noncommercial-Share Alike 2.5 Australia.

Tentang Urbanisme Sumber Terbuka

Penafian

Didukung oleh MediaWiki

*/

Finalis dalam

Kontes LED