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
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 1.432 17.10.2017 09:34
Letzter Beitrag: Tommy56
  Attiny45-20 programmieren PeterCrash 4 310 22.09.2017 20:49
Letzter Beitrag: Mathias
  ATtinys programmieren Thor Wallhall 11 749 14.09.2017 21:26
Letzter Beitrag: Thor Wallhall
  ATtiny13 mit der Arduino IDE 1.0.6 programmieren - geht das? Gelegenheitsbastler 5 2.726 11.09.2017 15:24
Letzter Beitrag: Mathias
  Frage zu STM32F1xx / Was kann ich bei dieser Fehlermeldung machen? Holzwurm56 37 1.402 04.09.2017 14:14
Letzter Beitrag: Holzwurm56
  Kommandozeilen-Parser programmieren tollewurst 2 308 21.08.2017 22:15
Letzter Beitrag: georg01
  Servo mit einem Taster und 433mhz steuern Thor Wallhall 63 2.884 29.07.2017 11:02
Letzter Beitrag: Thor Wallhall
  Optischenfüllstandsensor programmieren Freeed94 19 1.090 13.05.2017 08:03
Letzter Beitrag: Binatone
  Was optimiert der Kompiler/Optimaleres Programmieren da_user 3 390 14.04.2017 17:26
Letzter Beitrag: rkuehle
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 491 13.03.2017 12:12
Letzter Beitrag: Tommy56

Gehe zu:


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