Arduino + lysdioder + fläkt = POV "APPLÅDER" sign (6 / 6 steg)
Steg 6: Koden
Är nedan vad jag använde men det är långt ifrån ursprungliga. Originalet är mycket mer omfattande och polerad men jag starta med sin kod och bör ge kredit till honom.
Skissen innehåller också en font.h fil som jag hittade efter söka på internet. Jag är inte säker på att det var font.h som var en del av ursprungliga. Jag har tagit min nedan...
Kod för Arduino cykel POV-projektet
Arduino cykel POV
//
av Scott Mitchell
www.openobject.org
Öppen källkod Urbanism
//
Copyright (C) 2008 Scott Mitchell 12-10-2008
//
Detta program är fri programvara: du kan vidaredistribuera det och/eller ändra
det enligt villkoren i GNU General Public License som offentliggjorts av
Free Software Foundation, antingen version 3 av licensen, eller
(på ditt alternativ) någon senare version.
//
//============================================================
6/2011 kraftigt modifierad av c. Dubois till min POV
Hall sensorn är en switch så jag använde olika koden för det.
används även en font.h som jag hittade
// ------------------------------------------------------------
definiera alfabetet
#include "font.h"
definiera Arduino LED stiften i användning
CONST int LEDpins [] = {
1,2,3,4,5,6,7}.
antal lampor
CONST int charHeight = sizeof(LEDpins);
CONST int charWidth = 5;
sensor setup
CONST int sensorPIN = 0; definiera Arduino givarstaven
booleska sensorFlag = false; lagrar sensor staten
int sensVal; variabel för att lagra värdet kommer från sensorn
CONST char textString [] = "APPLÅDER";
void setup()
{
pinMode (13, OUTPUT);
pinMode (1, OUTPUT);
pinMode (2, utgång);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
Serial.BEGIN(9600);
}
void loop()
{
Aktivera Led för en cirkel i mitten och bevis den Arduinoen drivs
digitalWrite 13, hög. ställa in lysdioden på
sensVal = analogRead(sensorPIN); Läs Halleffekten sensorn
Serial.println(sensVal);
fördröjning (500).
hade svårt här
eftersom det är en switch hall switch förmodligen shoiuld bara göra digital Läs
om (sensVal! = 1023) {
skriva ut varje bokstav i textString
för (int k = 0; k < sizeof(textString); k ++) {
printLetter(textString[k]);
}
}
}
void printLetter(char ch)
{
se till att karaktären är innanför alfabetet (definierad av filen font.h)
om det inte är, gör det ett tomt tecken
om (ch < 32 || ch > 126) {
CH = 32.
}
subtrahera blanksteget (konverterar ASCII-numret till indexnumret teckensnitt)
CH-= 32.
Stega genom varje byte av arrayen karaktär
för (int jag = 0; jag < charWidth; i ++) {
byte b = teckensnitt [ch] [i];
lite förändring genom byten och mata den till stift
för (int j = 0; j < charHeight; j ++) {
digitalWrite (LEDpins [j]! (b & (1 << j)));
}
utrymmet mellan kolumner
delayMicroseconds(900);
}
klara lampor
digitalWrite (1, låg); ställa in lysdioden på
digitalWrite (2, låg). ställa in lysdioden på
digitalWrite (3, låg). ställa in lysdioden på
digitalWrite (4, låg). ställa in lysdioden på
digitalWrite (5, låg). ställa in lysdioden på
digitalWrite (6, låg). ställa in lysdioden på
digitalWrite (7, låg). ställa in lysdioden på
utrymme mellan bokstäver
delayMicroseconds(2500);
}
--------------------------------------
----------------------------------------
///============================================================
Arduino cykel POV
Font.h
//
av Scott Mitchell
www.openobject.org
Öppen källkod Urbanism
//
Copyright (C) 2008 Scott Mitchell 12-10-2008
//
Detta program är fri programvara: du kan vidaredistribuera det och/eller ändra
det enligt villkoren i GNU General Public License som offentliggjorts av
Free Software Foundation, antingen version 3 av licensen, eller
(på ditt alternativ) någon senare version.
//
Detta program är distribuerat i hopp om att det kommer att vara användbar,
men utan garantier; utan att ens underförstådd garanti om
SÄLJBARHET eller lämplighet för ett visst ändamål. Se den
GNU General Public License för mer detaljer.
//
En kopia av GNU General Public License
finns på < http://www.gnu.org/licenses/>.
//
B4.1
Senast uppdaterad: 13 oktober, 2008
//============================================================
definiera alfabetet
ASCII-7 x 5 sida-utfodring tecken för lysdiodramper
addapted från http://www.sxlist.com/TECHREF/datafile/charset/8x6.htm
CONST byte teckensnitt [] [5] = {
CONST unsigned char teckensnitt [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}, / / EN 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}, / / jag 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}, / / en 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}, / / jag 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 Erkännande-Ickekommersiell-Dela Lika 2.5 Sverige licens
Den här sidan ändrades senast modifierade 14:41, 11 januari 2009. Den här sidan har visats 1,477 gånger.
Text är tillgänglig under Creative Commons Erkännande-Ickekommersiell-Dela Lika 2.5 Sverige License.
Om öppen källkod Urbanism
Friskrivningsklausuler
Drivs av MediaWiki
*/