Hallo Liebe User, ich habe mich gerade eben in dem Forum angemeldet, da ich hier viele Informationen über Mikrocontroller, allerdings keine Antwort zu meinem eigentlichen Problem gefunden habe. Ich habe in der Schule BBS2 Emden eine Projektarbeit am laufen in der wir eine Sortiermaschine für Bälle bauen sollen. Wir haben die Projektarbeit in 4 Segmente aufgeteilt: Sortieren nach Farbe, leitfährigkeit, größe und geschwindigkeit. Meine Gruppe und ich haben das Segment Farbe übernommen. Wir haben uns für den Farb-Licht-/Frequenz-Wandler Taos TCS 3200 von Conrad.de entschieden. Wir haben den Sensor auch bereit an eine Platine gelötet und der Sensor ist anschlussbereit. Zwei Eingänge und einen Ausgang haben wir nun an unser Baord geschlossen: Die beiden Eingänge stellen die Farben da nenne wir sie S1 und S2. Wenn S1 und S2 auf high (sprich 1) geschaltet sind, misst er die Frequenz für die Farbe Grün. Allerdings sind wir nun auf ein Problem gestoßen: Wir haben auch nach einer langen internetsuche nicht herrausgefunden wie wir die Frequenz in unserem Board ausmessen. Wir bekommen die Frequenz am Ausgang OUT als Eingang in unser Board, welcher als PORT A PINA03 definiert wurde. Jetzt haben wir zwar den Port am Board, wissen aber dennoch nicht wie wir mithilfe des Ports die Frequenz im Programm ( C ) messen und auswerten können um zu sehen welche Farbe diese Freuqnz darstellt. Wenn wir für S1 und S2 ein low setzten verändert sich der Frequenzwert, da wir nun auf die Farbe Rot geschaltet haben. Hier noch eine Tabelle der Farboptionen: S1 S2 L L RED L H BLUE H H GREEN Wisst ihr wie wir die Frequenz am besten mit unserem Board ausmessen können? Danke im vorraus für die Hile! :)
Jede Meßaufgabe braucht erstmal Angaben: - Minimalwert - Maximalwert - Auflösung - Genauigkeit - Meßrate
Zuerst mal, ich kenn den Sensor nicht und auch mit Atmel hab ich schon laenger nichts mehr gemacht. Also ist das folgende mit Vorsicht zu geniessen. --------------------------------------------------- Der Sensor liefert ein TTL Rechtecksignal. Der Frequenzbereich ist durch S0,S1 einstellbar. Im Datenblatt des MC ueberprueft ihr ob der Eingangspin das TTL Signal vertraegt. (Bei 5V Versorung sollte er das). Der Eingangspin des MC wird so konfiguriert dass er bei fallender Flanke einen Interrupt ausloest. Ueber den Timer/Counter wird die Zeit bestimmt, die zwischen zwei Interruptaufrufen vergangen ist. Das macht man am besten so ca. 10 bis 100 mal und bildet einene Mittelwert. Daraus kann man dann die Frequenz berechnen. Das waere eine Moeglichkeit. Gruss Josef
Eine gute Lösung für eine Frequenzmessung wäre es die Input Capture Funktion des µC zur Zeitmessung nutzen. Das sollte bei dem µC bis zu etwa Taktfrequenz / 50 gehen, je nach Programm. Für mehr Auflösung könnte man ggf. auch über mehr als eine Periode die Zeit messen. Für eine Unterdrückung von 100 Hz Störungen aus dem Hintergrundlicht wäre ggf. eine gesamte Messzeit um 10 ms oder ein Vielfaches davon sinnvoll, die Zahl der Perioden könnte man dann anpassen. Falls der Eingang fest ist, könnte man ggf. den Analogen Komparator und MUC des ADs nutzen um auch den Pin für Input Capture zu nutzen. Wie das etwa aussieht, sieht man hier: http://www.rn-wissen.de/index.php/Timer/Counter_(Avr)#Input_Capture
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.