Sie sind nicht angemeldet.

1

Samstag, 15. März 2014, 20:33

DIY Flaglight by Manuel W

DIY Flaglight by Manuel W
(wenig Löten + Arduino + ProShift)






Video folgt



Erster Eindruck vom Flaglight (nur Green und White (sieht leider Lila aus)) im Rookieoval gefahren -> beim Nascar schauen




DIY Flaglight by Manuel W in pCars





Ich übernehme keine Haftung für beschädigte Hardware oder Software. Ist wie bei allem was mit DIY zu tun hat ^^


Benötigte Hardware:


- Arduino
- RGB LED-Stripe
- Breadboard
- Jumperkabel M/M
- Jumperkabel F/F
- 12V / 2A Netzteil
- Symproject Pro-Shift
- USB-Kabel-Mini
- 3x Transitoren
- Wiederstände
- Lötkolben + Lötzinn
- Kabel zum verlängern


Benötigte Software

- SimDash

- Arduino Software


Benötigter ArduinoCode:

Spoiler Spoiler

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
int const Red = 3; //pin 3 
int const Blue = 6; // pin 6
int const Green = 5; // pin 5
int const PinYellow = 14; //InPin
int const PinGreen = 15; //InPin
int const PinWhite = 17; //InPin
int const PinBlue = 16; //InPin
int const PinBlack = 18; //InPin

int  prevR = 0;
int  prevG = 0;
int  prevB =  0;
int  InYellow = 0;

void setup(){
  Serial.begin(9600);
  
 pinMode(Red, OUTPUT);
 pinMode(Blue, OUTPUT);
 pinMode(Green, OUTPUT);
 pinMode(PinYellow, INPUT);
 pinMode(PinGreen, INPUT);
 pinMode(PinBlue, INPUT);
 pinMode(PinWhite, INPUT);
  pinMode(PinBlack, INPUT);
} 


void loop() { //main loop of the program

//InYellow = digitalRead(PinYellow);

if (digitalRead(PinYellow) == LOW) {
  YellowBlink();
}
if (digitalRead(PinYellow)== HIGH){
  AusF();
}

if (digitalRead(PinGreen) == LOW) {
  GreenBlink();
}
if (digitalRead(PinGreen)== HIGH){
  AusF();
}

if (digitalRead(PinBlue) == LOW) {
  BlueBlink();
}
if (digitalRead(PinBlue)== HIGH){
  AusF();
}

if (digitalRead(PinWhite) == LOW) {
  WhiteBlink();
}
if (digitalRead(PinWhite)== HIGH){
  AusF();
}


if (digitalRead(PinBlack) == LOW) {
  BlackBlink();
}
if (digitalRead(PinBlack)== HIGH){
  AusF();
}

 }




///////// 
///////// Blinkfunktion
//////////


void YellowBlink(){
  
	for (int x = 0; x < 20000; x++){
 	YellowF();
   }  
   for (int y = 0; y < 10000; y++){
 	AusF();
 }
  
}


void BlueBlink(){
  
	for (int x = 0; x < 30000; x++){
 	BlueF();
   }  
   for (int y = 0; y < 10000; y++){
 	AusF();
 }
  
}

void WhiteBlink(){
  
	for (int x = 0; x < 30000; x++){
 	WhiteF();
   }  
   for (int y = 0; y < 10000; y++){
 	AusF();
 }
  
}

void GreenBlink(){
  
	for (int x = 0; x < 30000; x++){
 	GreenF();
   }  
   for (int y = 0; y < 10000; y++){
 	AusF();
 }
  
}


void BlackBlink(){
  
	for (int x = 0; x < 20000; x++){
 	BlackF();
   }  
   for (int y = 0; y < 10000; y++){
 	AusF();
 }
  
}

///////////
////////// Ausschalter
//////////

void AusF(){

	int  prevR = 0;
	int  prevG = 0;
	int  prevB =  0;

   analogWrite(Red, prevR );
   analogWrite(Green, prevG);
   analogWrite(Blue, prevB);


}


////////////
//////////// Farben deklariert 
///////////

void YellowF (){
	int  prevR = 255;
	int  prevG = 130;
	int  prevB =  1;

  
   analogWrite(Red, prevR );
   analogWrite(Green, prevG);
   analogWrite(Blue, prevB);
}

void BlueF (){
  int  prevB =  255;
  
  analogWrite(Blue, prevB);
}


void WhiteF (){
  
	int  prevR = 255;
	int  prevG = 130;
	int  prevB =  130;

  
   analogWrite(Red, prevR );
   analogWrite(Green, prevG);
   analogWrite(Blue, prevB);
  
}

void GreenF (){
  int  prevG=  255;

  analogWrite(Green, prevG);
}

void BlackF (){
	int  prevR = 155;
	int  prevG = 0;
	int  prevB =  255;

  
   analogWrite(Red, prevR );
   analogWrite(Green, prevG);
   analogWrite(Blue, prevB);
}


}


1. Schritt:

Den RGB-Stipe mit dem Arudino verbinden. Hierzu gibt es folgendes Tutorial:

- RGB Stripe "bearbeiten"
- Schaltplan( Bitte den mit den Wiederständen benutzen / ist der Zweite)

Das Netzteil + USB-Kabel an das Arduino anschließen und das 12V Kabel auf den "Vin-Pin" des Arduino legen.

Kabel für Rot auf Pin 3
Kabel für Blau auf Pin 6
Kabel für Grün auf Pin 5


2. Schritt:

Nun kommt der ProShift zum spiel.

Mit einem F/F und einem M/M Kabel legt ihr den ersten Pin + und - vom ProShift auf auf eine freie Stelle auf dem Breadbord und legt einen Wiederstand dazwischen.




Nun nehmt ihr einen weiteres M / M Kabel und verbindet den A0 Pin des Arduino mit dem Pin auf dem Breadborad auf den der - Pol des ProShifts liegt.




Nun wiederholt Ihr das noch 4 mal (immer eine neue Verbindung auf dem BreadBorad.





Hier nochmal der Steckplan:



3. Schritt:

Den Quellcode (siehe oben) mittels der Arduinosoftware auf das Arduino laden. SymDash öffnen und für den ersten Pin (unter Config. des ProShifts) auf Yellowflag stellen.

Nun sollte beim fahren sobald eine Gelbeflagge im Iracing gezeigt wird der RGB-Stripe Gelb Blinken.

Pin 2 des ProShits = Green
Pin 3 = White
Pin 4 = Blue
Pin 5 = Black ( Da die LED's kein Schwarz können hat die Blackflag die Frabe Lila)



Sollten Fragen aufkommen, einfach fragen. So kann ich das Tutorial auch anpassen.




Dieser Beitrag wurde bereits 17 mal editiert, zuletzt von »Manuel W« (11. Mai 2014, 10:17)


Es haben sich bereits 2 registrierte Benutzer bedankt.

Benutzer, die sich für diesen Beitrag bedankt haben:

Steffen (16.03.2014), Grimmy (16.03.2014)

2

Sonntag, 16. März 2014, 10:58

So erstes Update des Tutorials. Bilder und ein Video werden noch folgen.

3

Sonntag, 16. März 2014, 15:08

Hallo
Ich habs mir jetzt 4x durchgelesen , komme aber immer aufs selber Ergebnis :!:

Blicke jetzt ehrlich gesagt nicht durch auf was legst du denn deinen Pro shift und was soll das Signal was normal 14 mA sind .......ein / aus / schalten.

4

Sonntag, 16. März 2014, 16:32

Ich glaube es ist eigentlich so leicht der Zusammenbau das das Erklären nur schwerer wird xD

Also man benötigt das Netzteil (12V) wegen dem RGB-Stripe.

Der ProShift ist wie bei dir die Kommunikation mit Iracing.
Der + und - Pol des Proshifts habe ich einfach auf mein Breadboard gelegt (siehe das letzte der 3 Bilder) und einen Widerstand dazwischen gesetzt (sonst würden die LED's dauer blinken).

Vom Kabel welches der - Pol des Proshifts ist geht ein neues Kabel zu dem Arduino (ist auf den Bildern immer das Kabel welches über den beiden anderen steckt)

Sobald der ProShift angeht, schließt der über den Widerstand den Stromkreis (also so erkläre ich mir das - habe nicht so die Ahnung von E-Technik xD) und das Arduino bekommt auf einen der A Pins ( können wie bei mich nicht nur analog sondern auch digital genutzt werden ^^) ein "LOW-Signal" und das Arduino ruft je nach dem welcher A-Pin angesprochen wird eine der Blinkfunktionen auf.

Warum es genau so funktioniert weiß ich nicht aber es ist mir egal hauptsache es geht ^^

5

Sonntag, 16. März 2014, 18:00

ja ok ich brauch auch nicht reden, ist ja bei mir auch nicht so aufgebaut wie es sein müsste.

Nur ich habe EINEN Stromkreis fürs Siganl < Pro Shift / und der andere Stromkreis ist der von 12volt denn leds, das eine hat mit dem andern nichts zu tun gebraucht werden aber beide aber es sind zwei unterschiedliche Stromkreise so das die 12 Volt mit dem Pro shift Signal nicht in Verbindung kommen.


Du hast doch eine Stromquelle vom Pro shift ( Plus und minus) diese beiden Kabel sind normal dafür gedacht das die led einschalten wann das der fall ist hängt ja von der Software ab.<<<(Pro shift)

So wie ich das jetzt versanden habe hast du ja zwei Stromquellen an dem widerstand ??? Verstehe ich jetzt nicht sorry :!: du verursachst ja einen Kurzschluss wenn sich der pro shift einschaltet (flags)

Pro shift ist der Signal Geber was du nun auf Pin eins legst (leds / oder ein Schalt Relais ) spielt ja jetzt keine rolle aber du verursachst ja eine Konflikt mit + vom Pro shift und + vom anriuno board !!


Das Signal was ausgeben wird vom Pro shift ist ja für leds wenn du allerdings mehr leds anschließen willst muss die + und - Seite vom Pro shift ein eigener Stromkreis sein und der vom adriuno auch. Das erreicht man mit Relais oder sonstigen elektr. Schalter im mA Bereich ich denke das du mit deiner Version Strom aufs usb bekommst was da nicht hingehört und dir evtl. deinen Pc Schrotten kann.

Grüße

6

Sonntag, 16. März 2014, 18:07

Die Kabel vom Pro shift dürfen nicht an eine andere Stromquelle angeschlossen werden. Das ist nur das Signal normal gedacht 1x led und mehr nicht, Pin 1 -16 vom Pro shift reicht aber um ein Relais zu schalten.


7

Sonntag, 16. März 2014, 19:18

Hier mal mein Schaltplan :) evtl hilft dir das ja :)


Ähnliche Themen