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 programmieren Sixtus80 4 172 17.06.2017 15:04
Letzter Beitrag: Sixtus80
  Optischenfüllstandsensor programmieren Freeed94 19 633 13.05.2017 08:03
Letzter Beitrag: Binatone
  Was optimiert der Kompiler/Optimaleres Programmieren da_user 3 289 14.04.2017 17:26
Letzter Beitrag: rkuehle
  Bild in eine html Seite auf einem ESP8266 einfügen rockzm 1 250 06.04.2017 14:57
Letzter Beitrag: Tommy56
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 332 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Mehrere HX711 mit einem Arduino Uno be14b029 5 401 08.02.2017 18:09
Letzter Beitrag: Binatone
  8 Taster an einem Pin Kitt 9 646 04.02.2017 18:51
Letzter Beitrag: ardu_arne
  Arduino Läst sich nicht Programmieren Micha06 4 402 29.01.2017 17:27
Letzter Beitrag: Micha06
  3-Achsen Beschleunigungssensor ADXL355 programmieren Alexuino 0 329 11.01.2017 15:41
Letzter Beitrag: Alexuino
  aufeinander Aufbauende Lichtaktion mit einem Taster Colby 9 595 17.12.2016 13:30
Letzter Beitrag: Colby

Gehe zu:


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