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
  [Frage] Unterschied zwischen &=~ und ^= beim Bit ändern auf dem Port? avoid 13 464 11.01.2018 00:53
Letzter Beitrag: avoid
  Mehrere Ausgänge mit einem Befehl auf High oder Low setzen dahans 1 222 10.01.2018 12:48
Letzter Beitrag: Tommy56
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 17 3.696 30.12.2017 00:40
Letzter Beitrag: koma1965
  RC Anwendung mit 3 Empfängereingangen und einem MPU6050 Thorsten_S 19 820 10.12.2017 19:59
Letzter Beitrag: Tommy56
  Arduino mit Android programmieren. maxx 4 373 28.11.2017 18:32
Letzter Beitrag: hotsystems
  Frage zu casting Bode1979 3 311 11.11.2017 19:28
Letzter Beitrag: Bode1979
  Frage zu einer Lichtschrankenmessung - Nullwertabgleich Stargazer 12 953 03.11.2017 19:10
Letzter Beitrag: Binary1
  Frage zur Adressierung von Variablen ardu_arne 14 786 28.10.2017 11:16
Letzter Beitrag: ardu_arne
Question Mehrere HX711 an einem Arduino Nano Lambacher 59 3.036 17.10.2017 09:34
Letzter Beitrag: Tommy56
  Attiny45-20 programmieren PeterCrash 4 500 22.09.2017 20:49
Letzter Beitrag: Mathias

Gehe zu:


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