Arduino + LED + Wentylator = POV „APPLAUSE” Znak: 6 kroków (ze zdjęciami)

Arduino + LED + Wentylator = POV „APPLAUSE” Znak: 6 kroków (ze zdjęciami)

Spisu treści:

Anonim

Widziałem te urządzenia POV (Persistence of Vision) na innych Instructables i pomyślałem, że chciałbym je stworzyć i zawsze chciałem mieć własny znak „APPLAUSE”. Następnym ulepszeniem będzie sprawienie, że będzie się działo za każdym razem, gdy wejdę do pokoju.:) Może powiedz: „A tu jest Charlie!” Ale to jest na inny czas.

Więc mam fana na sprzedaż w garażu, trochę czytałem, znalazłem kod i poniżej jest wideo z mojej maszyny w akcji.

Zacząłem od ładnego kodu z Instructable autorstwa Scotta Mitchella - „Arduino Bike POV”, ale skończyło się na tym, że jego kod został bardzo sparowany. Na początku nie mogłem go uruchomić, więc ciągle zmieniam kod. Okazało się, że mój problem nie ma nic wspólnego z kodem. Wrócę więc do jego kodu i spróbuję ponownie, ponieważ jego jest znacznie bardziej ogólny i będzie działać łatwiej z różnymi frazami. Ale to także na później.

Poniższy film pokazuje POV w akcji. W rzeczywistości nie jest tak zepsuty ani rozłączony, jak w przypadku wideo.

Kieszonkowe dzieci:

Krok 1: Uzyskaj rzeczy

Elementy użyte w tym projekcie:

mały wentylator - sprzedaż garażu - 2,00

misc lumber - moja piwnica - 0,00

długość plastiku 15 o 2,5 cala - moja piwnica - 0,00

Arduino - używam Ardweeny od SolarBotics - około 10.00

7 czerwonych diod LED - już było - 1,00

Rezystory 7 - 330 omów - 3,00

Czujnik sal - mam od Adafruit - US5881LUA - 2.00

1 rezystor 10k do stosowania z czujnikiem Halls - 1,00

2 magnesy z lokalnego sklepu hobbystycznego - 1,00

Potrzebne będą również: przewód, bateria 9 V, śruby, epoksyd Loctite 5 min, mała płytka drukowana z Radio Shack

Krok 2: Rozpocznij montaż

1. Wytnij małą - 3 na 5 kawałków sklejkę 1/4 cala i epoksyduj do piasty wentylatora. Obecnie epoksyd jest jedyną rzeczą, która trzyma zespół LED w wentylatorze. Być może niektóre druty będą bezpieczne. Myślę, że dodam je później.

2. Wytnęłam kawałek plastiku o wymiarach 15 na 2,5 cala z posiadanego zapasu. Arkusze z tworzywa sztucznego można mieć w Home Depot. Właśnie zgadłem rozmiar i okazało się, że jest całkiem niezły.

3. Wywierć 7 otworów w jednym końcu około 3/4 cala dla diod LED. Znalazłem rozmiar wiertła, który umożliwia ścisłe wciśnięcie diod LED w otwory. Gdyby nie pasowały do ​​siebie, użyłbym odrobiny gorącego kleju do przytrzymania.

4. Włóż 7 diod LED do otworów.

5. Przymocuj plastik do sklejki 3 na 5 za pomocą małych wkrętów do drewna.

Krok 3: Zakończ uchwyt wentylatora

Będzie to zależało od używanego wentylatora. Wyciąłem wycięcie z kawałka 1 na 6 i byłem w stanie wsunąć tył wentylatora do wycięcia, a następnie użyć opaski drucianej, aby przymocować wentylator do płyty. Musiałem podnieść całą jednostkę, więc użyłem kilku 1 na 3 sekundy, aby doprowadzić wentylator do miejsca, w którym nie uderzyłby w płytę bazową. Dodałem kawałek sklejki do tyłu, aby efekt był lepiej widoczny. Potem pomalowałem wszystko na czarno.

Krok 4: Ardweeny & LEDS

Ardweeny from Solarbotics jest dostarczany w zestawie i wymaga około 30 minut do lutowania elementów. Jest przeznaczony do użycia na płytce kuchennej i po włożeniu chleba do obwodu, przylutowuję go do małego kawałka płytki PCB, który z kolei mogę przymocować do sklejki. Ardweeny obróci się wraz z diodami LED.

Po skonstruowaniu Ardweeny nadszedł czas na podłączenie diod LED. Użyłem nagiego drutu miedzianego jako wspólnego przewodu uziemiającego. Każdy z krótkich przewodów z diod LED jest przylutowany do przewodu miedzianego, a następnie drut miedziany jest podłączony do uziemienia w Ardweeny. Z dłuższej, dodatniej nogi diody LED podłącz przewód do Ardweeny i włącz rezystor 330 omów w obwodzie.

Podłączyłem diody LED do styków 1,2,3,4,5,6,7, a najbardziej zewnętrzna dioda LED była podłączona do styku 1.

Po wykonaniu wszystkich połączeń podłącz Ardweeny do sklejki. Użyłem małej śruby przez PCB.

Krok 5: Czujnik sal i bateria

Czujnik Halla:

Przymocuj czujnik hali do końca plastiku. Najpierw przylutowałem czujnik do małego kawałka płytki drukowanej, a następnie przymocowałem płytkę drukowaną do plastiku za pomocą małej śruby.

Aby podłączyć czujnik, użyłem następujących informacji, które otrzymałem w Adafruit: „Działa przy 3,5 V do 24 V. Aby użyć połączenia zasilania do styku 1 (aż do lewej strony), uziemić do styku 2 (środkowego), a następnie rezystora podciągającego 10 K ze styku 3 do zasilania., gdy południowy biegun magnesu znajduje się w pobliżu przodu czujnika, pin 3 spadnie do 0 V. W przeciwnym razie pozostanie na tym, do czego podłączony jest rezystor pullup. Nic się nie dzieje, jeśli biegun północny magnesu jest w pobliżu (unipolarny). „

Magnes dla czujnika:

Przymocowałem mały magnes do końca kołka i przymocowałem kołek do wspornika wentylatora. Zrobiłem to po obu stronach wentylatora. Ważne jest, aby jeden z magnesów miał swoją południową stronę skierowaną na zewnątrz, a drugi magnes miał swoją północną stronę.

idea: Ten czujnik jest typu zatrzaskowego, więc ma wartość 1 lub 0. Gdy rozpoczyna się wirowanie, pierwszy magnes włącza diody LED, a gdy dotrze do drugiego magnesu, wyłączy je. Oczywiście jest to zgodne z oprogramowaniem.

Fioletowy przewód przechodzi do styku analogowego 0, czarny do masy i czerwony do styku A + (wyjście 5 V).

Bateria:

Baterię 9V należy umieścić w miejscu, w którym będzie działać jako przeciwwaga dla wirującego tworzywa sztucznego. Jeśli plastik nie jest dobrze wyważony, wstrząśnie całym wentylatorem, gdy osiągnie prędkość. Użyłem kombinacji gumowej opaski i drutu do przytrzymania go na miejscu, ale nadal mogę go wyciągnąć, jeśli wymaga wymiany

Połącz przewody dodatnie i ujemne z akumulatora do odpowiednich styków. Włączyłem przełącznik, więc mogę wyłączyć Ardweeny. Przełącznik jest przymocowany do sklejki taśmą podwójną.

Krok 6: Kod

Wyszukiwanie projektów POV znalazło kod do projektu POV Bike.

Poniżej użyłem tego, ale jest to dalekie od oryginału. Oryginał jest o wiele bardziej wszechstronny i wypolerowany, ale zacząłem od jego kodu i powinienem go docenić.

Również szkic zawiera plik font.h, który znalazłem po przeszukiwaniu Internetu. Nie jestem pewien, czy to była font.h, która była częścią oryginału. Włączyłem moje poniżej..

// Kod projektu Arduino Bike POV

// Arduino Bike POV

//

// przez Scott Mitchell

// www.openobject.org

// Urbanistyka Open Source

//

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

//

// Ten program jest wolnym oprogramowaniem: możesz go rozpowszechniać i / lub modyfikować

// to zgodnie z warunkami GNU General Public License opublikowanej przez

// Free Software Foundation, albo wersja 3 licencji, albo

// (do wyboru) dowolna późniejsza wersja.

//

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

// 6/2011 mocno zmodyfikowany przez c. Dubois dla mojego projektu POV

// Czujnik Halla to przełącznik, więc użyłem do tego innego kodu

// użyłem również czcionki.h, którą znalazłem

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

// definiując alfabet

#include „font.h”

// zdefiniuj szpilki LED Arduino w użyciu

const int LEDpins = {

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

// liczba diod LED

const int charHeight = sizeof (LEDpins);

const int charWidth = 5;

// konfiguracja czujnika

const int sensorPIN = 0; // zdefiniuj pin czujnika Arduino

// boolean sensorFlag = false; // przechowuje stan czujnika

int sensVal; // zmienna do przechowywania wartości pochodzącej z czujnika

const char textString = "APPLAUSE";

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

}

void loop ()

{

// włącz Led dla okręgu pośrodku i udowodnij, że arduino jest zasilane

digitalWrite (13, HIGH); // włącz diodę LED

sensVal = analogRead (sensorPIN); // odczytaj czujnik efektu Halla

// Serial.println (sensVal);

// delay (500);

// miał tutaj trudności

// ponieważ jest to przełącznik hali przełączników, prawdopodobnie po prostu wykonaj odczyt cyfrowy

if (sensVal! = 1023) {

// drukuje każdą literę textString

dla (int k = 0; k

printLetter (textString k);

}

}

}

void printLetter (char ch)

{

// upewnij się, że znak jest w granicach alfabetu (zdefiniowany przez plik font.h)

// jeśli nie, zrób to pusty znak

jeśli (ch <32 || ch> 126) {

ch = 32;

}

// odejmij znak spacji (przekształca numer ASCII na numer indeksu czcionki)

ch - = 32;

// przechodź przez każdy bajt tablicy znaków

dla (int i = 0; i

bajt b = czcionka ch i;

// przesuń bit przez bajt i wyślij go na pin

dla (int j = 0; j

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

}

// odstęp między kolumnami

delayMicroseconds (900);

}

// wyczyść diody LED

digitalWrite (1, LOW); // włącz diodę LED

digitalWrite (2, LOW); // włącz diodę LED

digitalWrite (3, LOW); // włącz diodę LED

digitalWrite (4, LOW); // włącz diodę LED

digitalWrite (5, LOW); // włącz diodę LED

digitalWrite (6, LOW); // włącz diodę LED

digitalWrite (7, LOW); // włącz diodę LED

// spacja między literami

delayMicroseconds (2500);

}

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

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

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

// Arduino Bike POV

// font.h

//

// przez Scott Mitchell

// www.openobject.org

// Urbanistyka Open Source

//

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

//

// Ten program jest wolnym oprogramowaniem: możesz go rozpowszechniać i / lub modyfikować

// to zgodnie z warunkami GNU General Public License opublikowanej przez

// Free Software Foundation, albo wersja 3 licencji, albo

// (do wyboru) dowolna późniejsza wersja.

//

// Ten program jest rozpowszechniany w nadziei, że będzie przydatny, // ale BEZ ŻADNEJ GWARANCJI; bez nawet dorozumianej gwarancji

// PRZYDATNOŚĆ HANDLOWA lub PRZYDATNOŚĆ DO OKREŚLONEGO CELU. Zobacz

// GNU General Public License, aby uzyskać więcej szczegółów.

//

// Kopia GNU General Public License

// można znaleźć na .

//

// B4.1

// Ostatnia modyfikacja: 13 października 2008

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

// definiując alfabet

// znaki ascii 7x5 poboczne dla modułów led

// dodano z

// const bajtowa czcionka 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}, // i 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 Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Australia Licencja

Ta strona została ostatnio zmodyfikowana 14:41, 11 stycznia 2009 r. Do tej strony uzyskano dostęp 1 477 razy.

Treść jest dostępna na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Na tych samych warunkach 2.5 Australia Licencja.

O urbanistyce Open Source

Zastrzeżenia

Powered by MediaWiki

*/

Finalista w

Konkurs LED