Go Down

Topic: Lichtschranken Zähler  (Read 903 times) previous topic - next topic

HotSystems

Wozu ist denn so ein Forum deiner Meinung nach
Jedenfalls nicht, um dir die Grundlagen beizubringen.
Die bestehen sicher nicht nur daraus, wie das Teil angeschlossen wird.

Grundlagen musst du dir selbst beibringen, dazu gibt es Bücher oder auch zahlreiche Beiträge im Web.
Und wenn du wie du schreibst, die Grundlagen schon kannst, warum stellst du uns nicht deinen ersten Sketch vor ?
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

onal13

Grundlagen musst du dir selbst beibringen, dazu gibt es Bücher oder auch zahlreiche Beiträge im Web.
Und wenn du wie du schreibst, die Grundlagen schon kannst, warum stellst du uns nicht deinen ersten Sketch vor ?

int LED1 = 3; Schranke unterbrochen
int LED2 = 4;
int Fotodiode = A0;

void setup() {
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(A0,INPUT)

}

void loop() {

digitalWrite(4,HIGH);//normalzustand schranke nicht unterbrochen
digitalWrite(3,LOW);

}




das ist das was ich bis jetzt habe.
Nicht gerade viel

HotSystems

#17
Aug 12, 2017, 01:27 pm Last Edit: Aug 12, 2017, 01:32 pm by HotSystems
Ok, viel ist das in der Tat nicht.
Was soll denn der jetzige Sketch machen ?
Und eine Fotodiode sehe ich nur in der Initialisierung, danach nicht mehr. Genauso wie Led1 und Led2.
Warum verwendest du die nicht weiter ?

Und hier findest du weitere Informationen zu einer Fotodiode und deren Verwendung.

Edit:
Setze bitte zukünftig deinen Sketch in Code-Tags.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

onal13

#18
Aug 12, 2017, 02:11 pm Last Edit: Aug 12, 2017, 02:45 pm by onal13
Ok, viel ist das in der Tat nicht.
Was soll denn der jetzige Sketch machen ?
Und eine Fotodiode sehe ich nur in der Initialisierung, danach nicht mehr. Genauso wie Led1 und Led2.
Warum verwendest du die nicht weiter ?

Edit:
Setze bitte zukünftig deinen Sketch in Code-Tags.

Ich habe die Lichtschranke tatsächlich geschafft
hier der Code
Code: [Select]
   

int LEDInaktiv=5; //Led wenn Lichtschranke nicht durchbrochen
int LEDAktiv=6; //Led wenn Lichtschranke durchbrochen
int LEDIr=7; //IR Led
int PD=A0; //Analoger Eingang der Photodiode
int val=0; //Messdaten int do_debug=1;
int do_debug=1;

void setup()
{
if (do_debug ==1) Serial.begin(9600);
//benötigte Ports aktivieren
pinMode(LEDAktiv, OUTPUT);
pinMode(LEDInaktiv, OUTPUT);
pinMode(LEDIr, OUTPUT);
pinMode(PD, INPUT);
//IR Led einschalten
digitalWrite(LEDIr,HIGH); //einschalten der IR Diode
}

void loop()
{
val=analogRead(PD); //Photodiode auslesen
if (val<60) //Wird der Lichtstrahl unterbrochen...
{
digitalWrite(LEDAktiv, HIGH);
digitalWrite(LEDInaktiv, LOW);
}
else
{
digitalWrite(LEDAktiv, LOW);
digitalWrite(LEDInaktiv, HIGH);
}
if (do_debug ==1)
{ Serial.println(val); //Werte zum Serial Monitor senden
delay(1); }
}

 


jetzt fehlt  nur noch der Zählmodus
das kriege ich aber nicht hin


was sind Code-tags?

mit freundlichen grüßen

SkobyMobil

Hallo,
einfacher Zähler geht recht einfach...

Du deklarierst
Code: [Select]
int Zähler;
dann setzt Du hier die Variable zum Zählen
Code: [Select]
if (val<60) //Wird der Lichtstrahl unterbrochen...
 {
 digitalWrite(LEDAktiv, HIGH);
 digitalWrite(LEDInaktiv, LOW);
Zähler++; // bei jeder Unterbrechung zählt der Zähler hoch
 }

und hier
Code: [Select]
if (do_debug ==1)
 { Serial.println(val); //Werte zum Serial Monitor senden
 delay(1);
Serial.println(Zähler); // Werte Zähler zum Serial Monitor senden
}

CodeTag´s findest Du im Editor oben links (</>)
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

HotSystems

was sind Code-tags?
Das sind Steuercode, mit denen das Forum den Sketch gut formatiert darstellt.
Schaltfläche </> oben links im Editorfenster. Mach das bitte noch nachträglich, dann ist der Sketch auch lesbar.
Die genaue Funktion kannst du in "How to use this forum" nachlesen.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

onal13

Das zählen im seriellen Monitor klappt schonmal
wie schaffe ich es das die LED nicht bei jeder Unterbrechung leuchtet sondern nur bei der 10. ?

mit freundlichen Grüßen

SkobyMobil

Hallo,
Code: [Select]

if (Zähler == 10)
{
LED an;
}
else
{
LED aus;
}

Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

HotSystems

#23
Aug 12, 2017, 02:58 pm Last Edit: Aug 12, 2017, 02:59 pm by HotSystems
Beispiel-Code:
Code: [Select]

if(zahl == 10) {
Led an
}
else
{
Led aus
}


2.ter  :smiley-neutral:
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

SkobyMobil

Hallo,
"2.ter"
Das ist der ERSTE Verlierer. Ein wenig positiver.

Ich glaube nicht, das es das ist, was er will.
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

HotSystems

Hallo,
"2.ter"
Das ist der ERSTE Verlierer. Ein wenig positiver.

Ich glaube nicht, das es das ist, was er will.
Gruß und Spaß
Andreas
Auch ok...
Was will er denn ?
Dann soll er es besser beschreiben.
Anders gesagt, er sollte jetzt besser mal selbst programmieren.
I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

gregorss

"2.ter"
Das ist der ERSTE Verlierer. Ein wenig positiver.
Noch positiver: TOP-LOSER

SCNR

Gregor
Erkenne, was du nicht gut kannst - und lass es dann bleiben. (Homer Simpson)

onal13

#27
Aug 12, 2017, 07:09 pm Last Edit: Aug 12, 2017, 07:16 pm by onal13
Anders gesagt, er sollte jetzt besser mal selbst programmieren.

ich habs mal versucht aber er will irgendwie nicht.

Code: [Select]

 int LEDInaktiv=5;  
 int LEDAktiv=6;
 int PD=A0;
 int val=0;
 



void setup() {
  
Serial.begin(9600);

 pinMode(LEDAktiv, OUTPUT);
 pinMode(LEDInaktiv, OUTPUT);  
 pinMode(PD, INPUT);

 

}

void loop() {


{
 digitalWrite(LEDAktiv, LOW);
 digitalWrite(LEDInaktiv, HIGH);

  }


 val=analogRead(PD);  
  if (val<60)
  {
    i++;
  
   delay(500);
  }
  {
int i = 0;
 if (i<10);

{   digitalWrite(LEDAktiv, HIGH);
 digitalWrite(LEDInaktiv, LOW);

}

Serial.print(i);

 
  }




SkobyMobil

Hallo,
jetzt haste es vermurkst. Der Sketch davor lief doch.
Das "delay(500)" muß raus.
Wenn eine RennSemmel Deine Lichtschranke passiert, dann erwischt Du diese nicht.

"ich habs mal versucht aber er will irgendwie nicht"

Wer will was nicht?
Gruß und Spaß
Andreas
die zweite Maus bekommt den Speck...

onal13

Wer will was nicht?

ja also wenn die Lichtschranke 10 mal etwas registriert soll die die led von Rot auf Grün umschalten
klappt aber nicht

mit freundlichen grüßen

Go Up