INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Frage zu einem 74HC595 und generell zum Programmieren
03.07.2014, 22:23
Beitrag #1
Frage zu einem 74HC595 und generell zum Programmieren
Hallo,
erst nochmal danke an alle, die mir schon bei meiner letzten Frage geholfen haben.
Ich stehe gerade vor einem Problem, ich hab 2 Codes für meinen Sternenhimmel gefunden und so bearbeitet, dass ich zufrieden bin, der eine ist Für den Arduino selbst, der andere für das 74HC595 Schieberegister ( die Codes poste ich unten).
Also jeder Code für sich läuft super, aber jetzt muss ich sie irgendwie zusammen bekommen und sowas habe ich noch nie gemacht.
Gibt es eine Möglichkeit 2 Codes zusammen zu hängen ohne sie zu bearbeiten, also den einen einfach in den anderen einfügen?
Wenn man sich eine Fernbedienung einbaut, dann hat man doch sicherlich auch immer einen Code für die FB und einen für das Programm, nur so als Bsp.

Hier die Codes:

Code1

int ledPin02 = 2; // LED-Verbindung zu Digital I/O PWM 02 // Sternenbild 01
int ledPin03 = 3; // LED-Verbindung zu Digital I/O PWM 03 // Sternenbild 02
int ledPin04 = 4; // LED-Verbindung zu Digital I/O PWM 04 // Sternenbild 03
int ledPin05 = 5; // LED-Verbindung zu Digital I/O PWM 05 // Sternenbild 04

int ledPin06 = 6; // LED-Verbindung zu Digital I/O PWM 06 // Hintergrund 01
int ledPin07 = 7; // LED-Verbindung zu Digital I/O PWM 07 // Hintergrund 02
int ledPin08 = 8; // LED-Verbindung zu Digital I/O PWM 08 // Hintergrund 03

int ledPin09 = 9; // LED-Verbindung zu Digital I/O PWM 09 // Sternenbild 05
int ledPin10 = 10; // LED-Verbindung zu Digital I/O PWM 10 // Sternenbild 06
int ledPin11 = 11; // LED-Verbindung zu Digital I/O PWM 11 // Sternenbild 07

// int ir_receiver = 14; // IR-Empfänger-Verbindung zu Communication 14
//IRrecv irrecv(ir_receiver);
// decode_results results;

long randNumber;



void setup()

{
pinMode(ledPin02, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin03, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin04, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin05, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin06, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin07, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin08, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin09, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin10, OUTPUT); // Deklaration/Initialisierung als Ausgang
pinMode(ledPin11, OUTPUT); // Deklaration/Initialisierung als Ausgang

randomSeed(analogRead(0));

Serial.begin(9600); // Kommunikation mit dem Serial Monitor wird gestartet
//irrecv.enableIRIn(); // Initialisiert den IR-Empfänger


}



void loop()

{
randNumber = random(1, 11); // Zufällige Zahl bzw. Auswahl von 1 bis 11

switch(randNumber) // Zufälliger Wechsel zwischen den einzelnen Funktionen
{
case 1:
Funktion1();
break;

case 2:
Funktion2();
break;

case 3:
Funktion3();
break;

case 4:
Funktion4();
break;

case 5:
Funktion5();
break;

case 6:
Funktion6();
break;

case 7:
Funktion7();
break;

case 8:
Funktion8();
break;

case 9:
Funktion9();
break;

case 10:
Funktion10();
break;
}

}



void Funktion1()

{
for(int fadeValue = 120 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin02, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 120; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin02, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion2()

{
for(int fadeValue = 120 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin03, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 120; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin03, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion3()

{
for(int fadeValue = 120 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin04, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 120; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin04, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion4()

{
for(int fadeValue = 120 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin05, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 120; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin05, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion5()

{
for(int fadeValue = 120 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin06, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 120; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin06, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion6()

{
for(int fadeValue = 75 ; fadeValue <= 255; fadeValue +=3) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin07, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 75; fadeValue -=3) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin07, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion7()

{
for(int fadeValue = 20 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin08, fadeValue);
delay(20); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 20; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin08, fadeValue);
delay(20); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion8()

{
for(int fadeValue = 20 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin09, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 20; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin09, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion9()

{
for(int fadeValue = 20 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin10, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 20; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin10, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}



void Funktion10()

{
for(int fadeValue = 20 ; fadeValue <= 255; fadeValue +=1) // Dimmung vom Minimum "0" zum Maximum "255" mit einer Steigerung von "x" (in dem Fall min. 120 // max. 255 // stei. +1)
{
analogWrite(ledPin11, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

for(int fadeValue = 255 ; fadeValue >= 20; fadeValue -=1) // Dimmung vom Maximum "255" zum Minimum "0" mit einer Steigerung von "x" (in dem Fall max. 120 // min. 255 // stei. -1)
{
analogWrite(ledPin11, fadeValue);
delay(5); // Verzögerung zwischen Auf- und Abdimmung
}

}


Code 2 für Schieberegister

int randNum = 1;

void setup() {
pinMode(2, OUTPUT); //DS (Serial data input) wenn kerbe oben, pin3 (1=5v,2=led1,4=gnd,7=5v,8=nix/links1-7=led2-8,8=gnd
pinMode(3, OUTPUT); //STCP (Storage register clock input) pin6
pinMode(4, OUTPUT); //SHCP (Shift register clock input) pin5

digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
}

void loop() {
for (int i = 1; i <= 5; i++){//---------->
shift(1,80); // (1[ka was die besagt,80 ist der speed])
shift(2,80);
shift(4,80);
shift(8,80);
shift(16,80);
shift(32,80);
shift(64,80);
shift(128,30);
shift(0,0);
shift(0,0);
delay(1000);

}

}

void shift(int pin, int pindelay) {
shiftOut(2,4,MSBFIRST,pin); //shift out counter value to 74HC595
digitalWrite(3,HIGH); //shift out data from 8-bit Storage
delay(pindelay);
digitalWrite(3,LOW); //Register to 3-State Output
}

void rnd(int pin) {
switch (pin) {
case 1:
shift(1,45);
break;

}
}


Bei Code 1 hätte ich Pin2 ,4 und 7 ausgebländet und die 3 Pins für die Steuerung des Schieberegisters benutzt, aber ich hab die Codes erstmal so wie sie funktionieren hier gepostet, da meine stümperhaften versuche sie zu verbinden gescheitert sind.

Vielen dankAngel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2014, 13:17
Beitrag #2
RE: Frage zu einem 74HC595 und generell zum Programmieren
(03.07.2014 22:23)Sascha schrieb:  erst nochmal danke an alle, die mir schon bei meiner letzten Frage geholfen haben.
...und danke an Dich, die Ratschlaege mehr oder weniger gruendlich ignoriert zu haben.
Zitat:Gibt es eine Möglichkeit 2 Codes zusammen zu hängen ohne sie zu bearbeiten, also den einen einfach in den anderen einfügen?
Klar copy&paste, das kannst Du doch schon. Ich nehme aber an, Du willst, dass es auch funktioniert. In dem Fall solltest Du erstmal versuchen, das ganze zu verstehen.
UND LASS DAS DELAY() WEG.

Zitat:Wenn man sich eine Fernbedienung einbaut, dann hat man doch sicherlich auch immer einen Code für die FB und einen für das Programm, nur so als Bsp.
Ich wuerde mal sagen, man hat dann einen Sketch, der beides verarztet.

Zitat:aber ich hab die Codes erstmal so wie sie funktionieren hier gepostet, da meine stümperhaften versuche sie zu verbinden gescheitert sind.
Versuch erstmal was einfacheres.
Falls Du anfaengst, die Ratschlaege umzusetzen, dann koennte es sein, dass ich Dir nochmal versuchen werde, zu helfen. Ansonsten habe ich jetzt keine Lust mehr.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP8266 ESP12-E Webserver-Frage Claus_M 8 261 14.11.2016 22:02
Letzter Beitrag: Claus_M
  NRF24L01 Packet / Msg Frage Marc2014 5 124 07.11.2016 18:08
Letzter Beitrag: hotsystems
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 357 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  A4988 Driver mit einem Nema 17 Hangloose 3 140 04.09.2016 21:49
Letzter Beitrag: Hangloose
  ESP8266 Webserver Programmieren HDT 11 774 23.08.2016 13:28
Letzter Beitrag: HDT
  IDE 1.7.10 und Attiny programmieren Seewolf 7 480 06.08.2016 11:49
Letzter Beitrag: Seewolf
  Frage zu One Button in Kombination mit Fast LED Wolfgang_2801 3 241 26.06.2016 22:11
Letzter Beitrag: hotsystems
  Frage zu FastLed First Light Wolfgang_2801 1 229 19.06.2016 16:57
Letzter Beitrag: hotsystems
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 975 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Kann ich mit einem Arduino ein Gyro für Adroid Simulieren? Demitos 0 411 16.03.2016 18:33
Letzter Beitrag: Demitos

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste