2016-04-08 18 views
0

Ich bin neu in Mikroprozessor-Programmierung und haben derzeit einen RGB-Sensor, der einen RGB-Wert liest und eine Variable um eine beliebige Zahl erhöht. Ich möchte den Sensor für 0,3 Sekunden ausschalten, wenn ich einen bestimmten Wert erreiche. Gibt es eine Möglichkeit, dies zu tun, oder muss ich einen anderen Weg finden, um alle Werte, die der RGB-Sensor während dieser 0,3 Sekunden Zeit empfängt, zu löschen? Ich schreibe in C.Erzwingen eines Sensors auf Sleep auf RaspberryPi

Hinweis: Der Sensor, den ich derzeit verwende, ist ein TCS230.

+1

Wissen Sie, welchen Sensor Sie haben? Haben Sie seine technische Spezifikation und anderes Referenzmaterial über den Sensor gelesen? Das sollte Ihnen sagen, was Sie tun müssen, um den Sensor zu drehen, oder wenn es überhaupt möglich ist. –

+0

http://www.pobot.org/IMG/pdf/tcs230_datasheet.pdf – yano

Antwort

1

Gemäß dem Datenblatt ist Pin # 3 Output Enable ('OE, aktiv tief). Also, wenn Sie diesen Pin hoch fahren, sollte es die Ausgabe des Chips abschneiden.

Oder mehr zu Ihrer Frage, es sieht aus wie wenn Sie Pins S0 und S1 beide niedrig, wird es den Chip in einen "Power Down" Zustand setzen.

Welche Option Sie auch wählen, hängt davon ab, was wichtiger ist. Möchten Sie die schnellste Reaktionszeit haben oder möchten Sie Strom sparen? Wenn Sie die schnellste Reaktionszeit wünschen, verwenden Sie "OE". Es gibt eine typische Verzögerung von 100 ns zwischen der Aktivierung dieses Signals und der Antwort des Chips. Der Nachteil ist, dass der Chip während dieser ganzen Zeit noch läuft. Wenn Sie den Abschaltstatus wählen, sparen Sie Energie gegenüber der Output Enable-Option, aber die Fotodioden haben eine typische Verzögerung von 100 Mikrosekunden "Wiederherstellung nach Stromausfall". Offensichtlich ist das ein Faktor von 1000, und wenn du zeitkritische Arbeit machst, ist das wahrscheinlich nicht die beste Option.

Denken Sie daran, ich habe diesen Chip nie in meinem Leben verwendet, nur basierend auf meiner Antwort ein schnelles Lesen des Datenblattes.

+0

Entschuldigung, ich folge diesem vorletzten Satz nicht. Wie ist es ein Faktor von 1000, wenn es eine 100-Mikrosekunden-Erholung nach dem Ausschalten ist? Auch wenn OE verwendet wird, wenn der Chip läuft, nimmt er immer noch Daten auf? – astroboyy

+0

@astroboyy Ich meine in Bezug auf das Timing. 100 Mikrosekunden sind 1000 mal langsamer als 100 Nanosekunden. Das ist der Unterschied zwischen dem Abschalten des Chips oder einfach dem Abschalten der Ausgabe. Wenn Sie den Chip ausschalten, sparen Sie Energie auf Kosten der Chip-Reaktionszeit. Wenn Sie einfach die Ausgabe des Chips abschneiden, erhalten Sie schnellere Chip-Reaktionszeit auf Kosten der Verwendung von mehr Energie. Es gibt immer Kompromisse in der Technik. Es kommt also auf Ihre Anwendung an. Wird Ihr Pi ständig angeschlossen oder im Akkubetrieb? Ist Ihre Anwendung in Ordnung mit einer Verzögerung von 100 Mikrosekunden? – yano

+0

(Forts.) Oder ist das zu langsam? Dies sind Fragen, die von Projekt zu Projekt variieren. Und ja, selbst wenn Sie die Ausgabe abschalten, sollte der Chip immer noch Daten sammeln oder tun, was auch immer er tut ... soweit ich weiß, die 5 Minuten, die ich mit dem Datenblatt verbracht habe. Soweit Datenblätter gehen, ist das eine kurze .. lesen Sie es. Es wird dir mehr erzählen, als du jemals wissen wolltest. Wann immer Sie diesen Chip oder dieses Teil verwenden müssen, ist der erste Ort, um zu beginnen, sein Datenblatt. – yano

Verwandte Themen