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
Smile Punktestand von einem Arduino in eine Access Datenbank schreiben ThePhil 8 568 16.07.2018 22:24
Letzter Beitrag: Tommy56
Big Grin Brauche dringend Hilfe mit dem Programmieren von Servo und Taster holzchistli 4 703 19.06.2018 16:45
Letzter Beitrag: hotsystems
  MIDI Kontroller programmieren Baimie 9 956 16.05.2018 09:12
Letzter Beitrag: Tommy56
  Programmieren, welche Software ist möglich W-P-Grimma 5 743 03.04.2018 16:33
Letzter Beitrag: Tommy56
  Zwei identische I2C sensoren an einem Bus Karli 19 1.401 02.04.2018 22:13
Letzter Beitrag: Harry
  Hilfe beim Programmieren Klawino 28 2.432 10.03.2018 13:36
Letzter Beitrag: hotsystems
Exclamation Frage zur I2C zwischen Master und Slave saberlucien 6 644 27.02.2018 15:49
Letzter Beitrag: Tommy56
  Brauche Unterstützung bei Programmieren Geeros#18 4 621 12.02.2018 22:14
Letzter Beitrag: Chopp
  byte´s zu einem String zusammenfassen ? Franz54 18 1.547 31.01.2018 10:10
Letzter Beitrag: MicroBahner
  [Frage] Unterschied zwischen &=~ und ^= beim Bit ändern auf dem Port? avoid 13 1.165 11.01.2018 00:53
Letzter Beitrag: avoid

Gehe zu:


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