Forum: Mikrocontroller und Digitale Elektronik PIC 16F84A mit TCS230 ansteuern


von Jörg (Gast)


Lesenswert?

Ich habe eine Frage:

Wie kann ich den TCS230 an meinen PIC 16F84A anschließen? Wie muss ich 
die Ein- und Ausgänge setzen? Die Farbe soll dann auf einem LCD oder 
7-Segment angezeigt werden.

Danke für die Hilfe!

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

des ding wandelt licht in eine frequenz um
also wirst du schonmal einen frequenzzähler benötigen (schau mal bei 
sprut)

und als weiteren tip empfehle ich das studium des datenblatts und die 
suche nach app-notes

ich weiss jetzt net wie gross der code für den frequenzzähler is aber
könnte eng werden je nach dem wieviel schnickschnack du noch auf dem 
display anzeigen lassen willst (300 worte code für display)

von Jörg (Gast)


Lesenswert?

Nach Frequenzzählern habe ich mich informiert. Nur wird nicht ganz klar, 
wie man den Quellcode programmieren soll?

von Severino R. (severino)


Lesenswert?

@ Jörg

Du solltest Deine Fragen etwas konkreter formulieren, sonst kannst Du 
nicht geholfen werden (frei nach Verona...)

Was ist Dir nicht ganz klar?
Beherrschst Du PIC-Assembler?
Hast Du das Datenblatt des PIC16F84A studiert (weshalb überhaupt DER 
Typ, er ist ziemlich veraltet)?
Ist Dir klar, wie der Sensor angesteuert werden muss?

von Jörg (Gast)


Lesenswert?

Habe PIC seit etwa drei Jahren schon als Freizeitbeschäftigung.

von Severino R. (severino)


Lesenswert?

Toll, und jetzt?

von Jörg (Gast)


Lesenswert?

Mir ist nicht ganz klar, wie ich Anfangen soll?

von Severino R. (severino)


Lesenswert?

Also, Schritt für Schritt:

o Du hast MPLAB?

o Willst Du in Assembler oder C oder... programmieren?

o Hast Du einen Programmer oder Debugger?

o Welchen?

o Nochmals: muss es der PIC16F84A sein? Weshalb?

o Mit welchen PICs hast Du Dich in den letzten drei Jahren beschäftigt?

o Was hast Du damit gemacht?

o Hast Du das Datenblatt des PIC16F84A studiert?

o Ist Dir klar, wie der Sensor angesteuert werden muss?

von Franz (Gast)


Lesenswert?

Also ich würde den Tnread gerne noch fortführen.

Allerdings verwende ich keinen PIC 16F84A (will auch nichts ausgeben) 
sondern ATMEGA8, das Programm soll in C geschrieben werden

1. "Wie muss ich ein und Ausgänge setzen?"

Datenblatt sagt folgendes:
S0 und S1 zum Frequenz teilen, 100% -> beide High
MIt S2 und S3 wählst du den Farbfilter, beide High wäre dann die Reihe 
Dioden mit dem roten Farbfilter.

negierten OE auf Masse, Rest dürfte Klar sein

2. Das Programm in C

Hier hab ich auch meine Probleme und hätte mir Hilfe erhofft. Timer ist 
mir aus dem Datenblatt natürlich ein Begriff, habe aber keine Ahnung wie 
ich  ihn als Counter nutze, ansteuere oder das richtige register wähle.
Das Programm als Structogramm ist eiglich ganz einfach. Timer Starten 
bei der postiven Flanke und stoppen bei der negativen. (oder Impulse auf 
gewisste Zeit, bzw. benötigte Zeit auf bestimmte Anzahl von impulsen)

von Franz (Gast)


Lesenswert?

Kann mir hier denn keiner helfen?

von Franz (Gast)


Lesenswert?

Ich weiß schon dass man die Faulheit nicht unbedingt unterstützen soll, 
aber vielleicht hat doch jemand Mitleid.

von Andreas K. (a-k)


Lesenswert?

16bit Timer frei laufen lassen und Capture-Input verwenden, mit 
Interrupt oder ohne je nach Geschmack. Die Differenz zweier aufeinander 
folgender Capture Werte berechnen, und fertig ist die Frequenz (naja, 
der Kehrwert davon).

Den Frequenzbereich vom Sensor und/oder den Prescaler vom Timer so 
wählen, dass die Zeit zwischen den Captures auch bei maximaler Frequenz 
nicht zu klein und damit ungenau wird, aber am anderen Ende der Skala 
auch nicht den Zählbereich des Timers überschreitet. Will man 
gleichermassen Mondlicht und Sonneneinstrahlung rauskriegen, muss man 
ggf. Frequenzbereich oder Prescaler bedarfsgemäss umschalten.

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
Noch kein Account? Hier anmelden.