Hoe maak je een 'Gloeiende Crosswalk' stedelijke Prototype (8 / 14 stap)

Stap 8: Stap 8: Arduino Code uploaden

• upload Arduino programma

Ik heb de code als een .zip-bestand bijgevoegd. Hier is de tekst:

/*

Vanaf 3:00 AM op 20 oktober 2012 is dit de meest werkversie met alles erin!
Deze versie kan worden geüpload naar 2 apparaten die zijn geconfigureerd met een draadloze ontvanger op pin 4
en een Analoger Funksender op pin 3 (en vanaf dit moment is momenteel op beide mijn test apparaten)

Bochten aan en uit een aangedreven lichtopbrengst systeem verbonden met digitale
pin 9 wanneer op pin 2 indrukken van een drukknop aangesloten.

Stuurt een RF signaal (een bericht van de letter "A" via VirtualWire) naar andere apparaten die met hetzelfde programma,
waardoor ze zich gedragen alsof hun drukknop werd ingedrukt.

Polls voor RF-berichten (met behulp van de VirtualWire-bibliotheek); ontvangst van een bericht op het kanaal zorgt ervoor dat eenheid
om zich te gedragen alsof drukknop werd ingedrukt.

TO: Poll voor een specifiek bericht

Het circuit:
* LED van pin 13 gekoppeld aan grond (voor foutopsporing)
* Externe licht circuit aangesloten op pin 9
* drukknop verbonden met pin 2 van + 5V
* De 10K weerstand zijn verbonden met pin 2 vanaf de grond

Zie JT de schetsmatige OmniGraffle diagram voor een mashup van de bovenstaande met de verlichting circuit (sans RF de apparaten)
http://bildr.org/2011/03/High-Power-Control-with-Arduino-and-tip120/

gemaakte 2005
door DojoDave < http://www.0j0.org>
gemodificeerde 30 Aug 2011
door Tom Igoe
gemodificeerde 20 okt 2012
door Jason Taylor
gemodificeerde 08 Nov 2012
door Thomas Deckert

Originele voorbeeldcode is in het publieke domein, inclusief knop voorbeeldcode uit
http://www.Arduino.CC/en/tutorial/button
en verzenden/ontvangen voorbeelden uit de projectsite VirtualWire

*/

#include < VirtualWire.h >

constanten niet gewijzigd. Ze gewend bent hier
pin-codes instellen
Const int buttonPin = 2;     het nummer van de drukknop pin
Const int ledPin = 9;      het nummer van de lichtopbrengst pin - Vergeet niet "ledPin" hier betekent "externe lights"
Const int RF_TX_PIN = 3;    het nummer van de pin voor de zender
Const int RF_RX_PIN = 4;    het nummer van de pin voor de ontvanger
Const int debugLED = 13;    het nummer van de pin voor het debuggen van de (standaard) leidde op het schild

variabelen zal veranderen:
Boole buttonState = false;         variabele voor het lezen van de drukknop status
Boole oldButtonState = buttonState;
Boole ledState = false;
Boolean begon = false; begint een reeks
lange waitUntil = 0;
lange startTime = 0;
lange flashStartTime = 0;
int holdTime = 12000;  duur van hold sequentie
int flashTime = 15000;  duur van de volledige flash reeks
int strobe = 500;  duur van één flits
int runtime = 0;

VOID Setup {}
Serial.begin(9600);
Initialiseer de LED-pin als uitgang:
pinMode (ledPin, OUTPUT);
Initialiseer de drukknop pin als input:
pinMode (buttonPin, INPUT);
vw_setup(2000);  Bits per seconde
vw_set_tx_pin(RF_TX_PIN); Setup pin verzenden
vw_set_rx_pin(RF_RX_PIN);  Setup ontvangen pin.
vw_rx_start();       Start de werking van de PLL ontvanger
}

void loop {}

Telkens via loop, Pin 9 ingesteld op dezelfde waarde als de toestandsvariabele
digitalWrite (ledPin, ledState);

Lees de waarde van de knop aan begin van de lus, voordat u iets doet
buttonState = digitalRead(buttonPin);

Triggers meer licht tijd telkens knop is ingedrukt--toevoegen ontdendering als de tijd het toelaat
Als (buttonState! = oldButtonState) startSeq(); tijd knop staat wijzigingen die we tijd toevoegen aan de lichten op

spullen om ontvangst van bericht van een ander apparaat
recht nu uitbreidt ook tijd zelfs als knop werd ingedrukt lokaal en overkant tegelijkertijd!

uint8_t buf [VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
Als (vw_get_message (buf, & buflen)) {/ / Non-blocking
int i;
Serial.Print ("kreeg:");
voor (ik = 0; ik < buflen; i ++) {}
digitalWrite (debugLED, hoog); test LED
Serial.println (buf [i], HEX);
}
digitalWrite (debugLED, laag);
startSeq(); Zodra we een bericht krijgen we tijd toevoegt aan lichten op
}


Als (gestart) {/ / de knop werd geduwd, dus

vorige werkende flasher code
Als (millis() > = (flashStartTime)) {/ / als LED al op meer dan de tijd van houden...
Als (millis() < = (flashStartTime + flashTime)) {/ / flash volgorde invoeren als het nog niet is ingevoerd
Als (((millis() - flashStartTime) % strobe) == 0) {/ / elke strobe duur in-/ uitschakelen. PROBLEEM DE LIJN! (zegt Jake)
ledState =! ledState;
Serial.println(Millis() - flashStartTime, DEC);
}
}
else {(ledState = false); gestarte = false;} / / uitzetten na flash reeks
}
}

Lees de waarde van de knop aan eind van de lus te zien als het gewijzigd
oldButtonState = buttonState;
}

VOID startSeq () {/ / dus momenteel als knopstatus wordt gewijzigd in beide richtingen krijgen we een ander seq start...?

code voor het verzenden van een bericht uit een ander licht kit
const char * msg = "A";
digitalWrite (debugLED, true); inschakelen van de opdracht debug LED
Serial.println("SS");
vw_send ((uint8_t *) msg, strlen(msg));
vw_wait_tx(); Wachten totdat het gehele bericht verdwenen is
Serial.println("ES");
digitalWrite (debugLED, false); uitschakelen van de debug LED
einde code voor signaal af aan een ander licht kit

nu laten we krijgen de lampjes op deze paal knipperen!
begon = true;
startTime=millis(); records wanneer in het programma de knop werd ingedrukt
flashStartTime = startTime + holdTime; het opvlammen van de reeks zal beginnen na bedrijf reeks
waitUntil = startMillis;
ledState = true; LED aanzet en start volgorde telkens knop is ingedrukt

}

Gerelateerde Artikelen

Hoe maak je een gloeiende Dessert!

Hoe maak je een gloeiende Dessert!

Hallo!Dit Instructable wil je leren hoe om uit te rusten van de luminescentie van gemeenschappelijke voedingsmiddelen - waarvan sommige u reeds in uw voorraadkast hebt mogelijk-maken een mooi dessert dat zowel geeky en culinaire vrienden gelijk zal v
Hoe maak je een gloeiende metalen teken (voor Pi dag!)

Hoe maak je een gloeiende metalen teken (voor Pi dag!)

ik wilde iets maken speciaal voor mijn vriendin's jaarlijkse Pi Day party, dus heb ik besloten om het gebruik van sommige plaatwerk ik moest op een gloeiende π ondertekenen op TechShopmaken. Hier is hoe kun je iets dergelijks jezelf!Benodigde materia
Hoe maak je een gloeiende robot passen.

Hoe maak je een gloeiende robot passen.

Vorig jaar, heb ik besloten om een beetje een gek project ondernemen - Making gloeiende robot past hiervoor circus voorstellingen. Dit was dus dat wij in omstandigheden met weinig licht zoals discotheken en festivals kunnen uitvoeren.Dit instructable
Hoe maak je een gloeiende Nuka Cola Coaster

Hoe maak je een gloeiende Nuka Cola Coaster

Hier is een snelle tutorial over hoe te maken van een achtbaan Nuka Cola Cap voor al uw Fallout-fans!Stap 1: Verzamelen uw benodigdheden...Voor dit project zal u het volgende nodig:-Een achtbaan (dit is een achtbaan van de kurk van de dollaropslag)-W
Hoe maak je een gloeiende bloem hoofdband

Hoe maak je een gloeiende bloem hoofdband

mijn moeder gebruikt om te doen een heleboel floral regeling spullen en ze had deze coole LED aangedreven glasvezel verlichting die voor corsages en stuff waren.  Ik vond ze en ik was geïnspireerd om deze hoofdband.  Op het eerste gezicht lijkt gewoo
Hoe maak je een gloeiend nachtlampje zwart licht

Hoe maak je een gloeiend nachtlampje zwart licht

In een paar eenvoudige stappen kunt u een verbazingwekkende collectie van potten die onder een zwart licht helder genoeg om het licht van uw griezelig donkere slaapkamer gloeien.Stap 1: materialen Hier is een lijst van materialen die u nodig heeft vo
Hoe maak je een Glowing LED Sea Shell licht

Hoe maak je een Glowing LED Sea Shell licht

Hi,In deze eenvoudige instructable ga ik om u te tonen hoe maak je een gloeiende zee shell die ziet er echt leuk. Het is zeer eenvoudig te maken en erg goedkoop.Stap 1: materialen MaterialenLED- ik gebruikte een 10 mm RGB zelf fietsen LED. 15-50 cent
Hoe maak je een Green Lantern ring-met inbegrip van een gloeiende versie!

Hoe maak je een Green Lantern ring-met inbegrip van een gloeiende versie!

Hier is hoe te maken van je eigen hars gegoten Green Lantern ring. Dit een complete revisie van mijn oorspronkelijke instructable over hoe te maken van een ring, Green Lantern, die eerder alleen liet zien hoe een cast sterling silver ring wordt gemaa
Hoe maak je een draagbare zonne-Generator

Hoe maak je een draagbare zonne-Generator

Hoe maak je een draagbare zonne-GeneratorWaarom zonne-energie?Zonne-energie is op dit moment de schoonste en meest overvloedig hernieuwbare energiebron beschikbaar. Zonne-energie is volledig gratis en produceert geen verontreinigende stoffen. De enig
Hoe maak je een blauwe plek

Hoe maak je een blauwe plek

Dit Instructable leert u stapsgewijs hoe maak je een authentieke blauwe plek. Het is niet moeilijk! Alles wat u nodig hebt is de gele, zwarte, bruine en witte oogschaduw.Stap 1: Regel uw oog met Stichting Regel uw oog met foundation of concealer dus
Hoe maak je een bal molen met lego en een pvc-pijp--digitale ontwerp-bestand bevat

Hoe maak je een bal molen met lego en een pvc-pijp--digitale ontwerp-bestand bevat

Greetings en welkom op mijn Instructable op hoe maak je een molen van de bal met behulp van lego en PVC pijp.Dit instructable nu bevat een 3D digitale ontwerp en 3D handleiding van hoe maak je deze bal molen.de HTML-versie van de handleiding is besch
Hoe maak je een elektrische basgitaar via lamineren van hout en andere verschillende technieken van de woodcrafting

Hoe maak je een elektrische basgitaar via lamineren van hout en andere verschillende technieken van de woodcrafting

dit is een diepgaande gids voor de gedurfde woodcrafting ambachtsman die hoe maak je je eigen elektrische basgitaar met behulp van diverse technieken gebruikt uitleggen zal in hout crafting. Deze handleiding krijgt u om te gaan door middel van een pr
Hoe maak je een afdaling Ski-Bike 2.0

Hoe maak je een afdaling Ski-Bike 2.0

Een ski-fiets is een prachtige contraption die gebruikmaakt van de basiselementen van een fiets vastgemaakt naar downhill skis te rijden van een besneeuwde helling.Mijn eerste poging om het creëren van een afdaling ski-fiets resulteerde in een volled
Hoe maak je een Animatronic Hand

Hoe maak je een Animatronic Hand

In dit Instructable zal ik je laten zien hoe maak je een matig ingewikkeld Animatronic hand, met behulp van de soorten technieken gebruikt door de werkelijke animatronics specialisten. Het systeem is in feite een complexe marionet, met servo's brenge