Sunday 23 July 2017

Arduino Shift Out Binär Optionen


Navigation Aktuelle Version 1.1.0 2011-03-02: Support IDE 1.0. Und getestet auf 0021 und 0022 1.0.0 2012-01-13: Erstes Release. 1.1.0 2012-03-02: zweite freigabe. Beschreibung shiftOutX ist eine Bibliothek zur Steuerung von Schieberegistern. Ich habe es auf vier 74HC595 Schieberegister Daisy verkettet, aber es kann bis zu acht Register kontrollieren. Es verwendet nicht SPI, also funktioniert es nicht für PWM, aber wenn ON-AUS-Schalter alles sind, was benötigt wird, um LEDs und Relais zu fahren (vermutlich Transistoren, um die Relais zu fahren, die eigentlich das ist, was ich es benutzt habe), dann wird das funktionieren. Ist genau wie die digitalen ausgänge auf dem arduino. Es besteht aus modifizierten shiftOut Funktionen von wiringshift. c. Hoffentlich wird es jemandem dienen. In Version 1.1.0 wurde SPI hinzugefügt und Zeiger auf Byte-Arrays werden anstelle von langen langen ganzen Zahlen verwendet, es ist schneller und PWM funktioniert (Software implementiert). Laden, installieren und importieren und platzieren Sie das shiftOutX-Verzeichnis in DocumentsArduinolibraries (Mac) oder My documentsArduinbibliotheken (Windows) von Arduino IDE. Sie sehen eine Beispielskizze aus Datei - gt Sketchbook - gt Beispiel - gt shiftOutX - gt shiftFourRegisters. Um eine neue Skizze zu erstellen, wählen Sie aus der Menüleiste Sketch-gtImport Library-gtshiftOutX. Sobald die Bibliothek importiert ist, erscheint eine Zeile ltshiftOutX. hgt Zeile am oberen Rand deiner Skizze. Und auch, a include ltshiftPinNo. hgt Sie müssen eine Instanz der shiftOut-Klasse wie folgt erstellen: shiftOutX (Byte latchPin, Byte dataPin, Byte clockPin, Byte bitOrder, Byte NofRegisters) shiftOutX regGroupOne 40 8. 11. 12. MSBFIRST. 4 41 ja können Sie mehr Daisy-Kettenregister anhängen, verwenden Sie einfach eine andere LatchPin-Nummer, so dass Sie tatsächlich noch vier weitere Register hinzufügen und nur einen weiteren Pin aus dem Arduino aufnehmen können, erklären Sie einfach eine andere Instanz zum Beispiel regGroupTwo und verwenden Sie das gleiche dataPin und clockPin. Sie können zwei Gruppen von acht für insgesamt 128 Ausgänge verwenden Informationen über diese SeiteDie 74HC164 Shift Register und Ihre Arduino ampquotsome andere Modelle sind parallel in serial aus, sie tun das gleiche, aber als Eingaben an die arduinoampquot. Welche Teilnummern sind diese, da ich ein 8-Bit-PISO-Schieberegister auf der 74XX-Teileliste finden kann. Die meisten 74 Logikserien I. C. Haben einen komplementären Teil, der 1 oder 2 Ziffern unterschiedlich ist, werfen Sie einen Blick auf die 165 und 166. Diese don39t tun, was ich will, aber egal wie ich das Problem sortiert habe. Ich muss Informationen von 15 verschiedenen Schaltern an den Arduino eingeben, aber ich habe nicht so viele Stifte spare ltemgt (einige sind im Einsatz als Ausgänge) ltemgt. I39ve verwendet 4 ltstronggt73LS30ltstronggt (8 input NAND Gates), um eine binäre 4-Bit-Ausgabe zu geben, also werden sie nur 4 Pins auf dem arduino verwenden. Nicht so gut wie 1 pin (seriell) aber besser als 15 pins Very cool tutorial. LtbrgtI hatte ein Problem herauszufinden, wo man die Uhr (8) ltbrgtand Pin 9 (V) auf dem 74HC164 anschließen kann. Ich habe es endlich bekommen und geerdet Pin 9.ltbrgtI war frage mich, warum, wenn ich Pin 9 berührt, die LEDs würde leuchten. ltbrgtThen realisiert, dass ich als eine Art Boden handelte dann schlug es mich. LOLltbrgtMein nächstes Tutorial wird das 7 Segment display. ltbrgtltbrgtAlso ich frage mich, wie kann ich die 4x4 Matrix Flash Letters. ltbrgtCould Sie geben mir einige Einblick auf, wie kann ich die Datei öffnen. tmp in arduino IDE. Es scheint nicht funktionieren Ltbrgtthank you :) klicken Sie auf die Links oben wird es in Ihrem Browser öffnen, einfach kopieren und einfügen, oder umbenennen die tmp-Datei zu pde (habe keine Ahnung, warum das tut das) Okay. Ich versuche es. Danke Dies ist ein ausgezeichnetes instructible Dies ist bei weitem der beste Anfänger-Führer, um Registern zu verschieben. Vielen Dank dafür, dass du das rausgelegt hast. Ich hoffe, Sie beantworten immer noch Fragen für diese anweisbare. Ich habe mit dem Bau der 4x4 Matrix fertig. Alles Nähte, um gut zu funktionieren, aber ich habe Probleme beim Aufleuchten der LEDs. ltbrgtltbrgtI kann leicht eine individuelle LED anzünden, um zu leuchten, aber wenn ich das bekomme, bekomme ich auch die LEDs, um mich einzuschalten (viel Dimmer dann die angesprochene LED) ltbrgtltbrgtI haben Griff ein Bild an, um dir zu zeigen, was los ist. Ich versuche nur zu leuchten und LED, die in Position ist (1,1), aber als die gleiche Zeit LED (4,4) ist schwach lit. ltbrgtltbrgthere ist das Stück Code, den ich verwende. LtbrgtshiftOut (Daten, Uhr, MSBFIRST, B10000001) ltbrgt verzögert (1) ltbrgtltbrgtSie vermutlich, warum Hallo wollte danke für ein tolles Tutorial zu sagen, ich bin im Begriff, den Aufbau der 4x4 Matrix zu beenden und werde euch wissen lassen, wie es geht. Ltbrgt Great tutorial. ampnbsp Vielen Dank für die Herstellung es, it39s echtes helpfulltbrgt Dies ist ein fantastischer Führer ltbrgt ltbrgt I39ve war auf der Suche nach etwas geschrieben wie das für eine Weile. LtbrgtI haben jetzt eine voll funktionsfähige 4x4 LED Matrix, die ich mich selbst gebaut habe, und bekomme die Muster zu zeigen, die ich will. Ltbrgt ltbrgtDas ist alles dank dir. Ltbrgt ltbrgt ltbrgt Beifall, ltbrgt ltbrgt Mikey C Super rad Tutorium doodbitshift links (ltlt), Bitshift rechts (gtgt) Beschreibung Von der Bitmath Tutorial auf dem Spielplatz Es gibt zwei Bitschiebebetreiber in C: der linke Schichtbetreiber ltlt und der rechte Schichtoperator Gtgt. Diese Operatoren bewirken, dass die Bits im linken Operanden nach links oder rechts durch die Anzahl der vom rechten Operanden angegebenen Positionen verschoben werden. Mehr auf bitweise Mathe finden Sie hier. Variable ltlt numberofbits Variable gtgt numberofbits Variablen Variable - (Byte, int, long) numberofbits integer lt 32 Wenn man einen Wert x um y Bits (x ltlt y) verschiebt, sind die linken y Bits in x verloren, buchstäblich aus der Existenz verschoben: Wenn Sie sicher sind, dass keiner von denen, die in einem Wert verschoben werden, in Vergessenheit geraten ist, ist ein einfacher Weg, um an den Linksschiebe-Operator zu denken, dass er den linken Operanden um 2 mit der rechten Operandenleistung vermehrt. Um zum Beispiel Potenzen von 2 zu erzeugen, können die folgenden Ausdrücke verwendet werden: Wenn man x rechts um y Bits (x gtgt y) und das höchste Bit in x ein 1 schaltet, hängt das Verhalten von dem exakten Datentyp von x ab . Wenn x vom Typ int ist, ist das höchste Bit das Vorzeichenbit, das bestimmt, ob x negativ oder nicht ist, wie wir oben diskutiert haben. In diesem Fall wird das Vorzeichen-Bit in die unteren Bits kopiert, aus esoterischen historischen Gründen: Dieses Verhalten, genannt Zeichenerweiterung, ist oft nicht das Verhalten, das Sie wollen. Stattdessen können Sie wünschen, dass Nullen von links verschoben werden. Es stellt sich heraus, dass die richtigen Verschiebungsregeln für unsigned int Ausdrücke unterschiedlich sind, also können Sie einen typecast verwenden, um zu unterdrücken, die von links kopiert werden: Wenn Sie vorsichtig sind, um Zeichenerweiterung zu vermeiden, können Sie den Rechtsschaltbetreiber gtgt als a verwenden Weg, um durch die Befugnisse von 2 zu teilen. Zum Beispiel: Korrekturen, Anregungen und neue Unterlagen sollten dem Forum bekannt gegeben werden. Der Text der Arduino-Referenz ist unter einer Creative Commons Attribution-ShareAlike 3.0 Lizenz lizenziert. Code-Beispiele in der Referenz werden in die public domain. Serial zu Parallel Shifting-Out mit einem 74HC595 Shifting Out amp der 595-Chip Einmal oder andere können Sie aus Pin auf Ihrem Arduino Board laufen und müssen es mit Schieberegistern zu verlängern. Dieses Beispiel basiert auf dem 74HC595. Das Datenblatt bezieht sich auf das 74HC595 als ein 8-Bit serielles, serielles oder paralleles Schieberegister mit Ausgangs-Latches 3-State. Mit anderen Worten, Sie können es verwenden, um 8 Ausgänge gleichzeitig zu steuern, während Sie nur einige Stifte auf Ihrem Mikrocontroller aufnehmen. Sie können mehrere Register miteinander verknüpfen, um Ihre Leistung noch mehr zu erweitern. (Benutzer können auch nach anderen Treiberchips mit 595 oder 596 in ihren Teilenummern suchen, da sind viele. Der STP16C596 wird zum Beispiel 16 LEDs fahren und die Serienwiderstände mit eingebauten Konstantstromquellen eliminieren.) Wie das alles funktioniert Ist durch eine so genannte synchrone serielle Kommunikation, dh man kann einen Pin nach oben und unten pulsieren und damit ein Datenbyte dem Register Bit für Bit mitteilen. Sein durch pulsierenden zweiten Stift, die Uhr Stift, dass Sie zwischen Bits abgrenzen. Dies steht im Gegensatz zu der asynchronen seriellen Kommunikation der Serial. begin () - Funktion, die auf den Sender und den Empfänger unabhängig auf eine vereinbarte spezifizierte Datenrate setzt. Sobald das ganze Byte an das Register übertragen wird, werden die HIGH - oder LOW-Nachrichten, die in jedem Bit gehalten werden, zu jedem der einzelnen Ausgangsstifte herausgezogen. Dies ist der parallele Ausgangsteil, mit all den Stiften tun, was Sie wollen, dass sie alle auf einmal tun. Der serielle Ausgangsteil dieser Komponente stammt aus seinem zusätzlichen Pin, der die vom Mikrocontroller empfangenen seriellen Informationen unverändert wiedergeben kann. Dies bedeutet, dass Sie 16 Bits in einer Reihe (2 Bytes) übertragen können und die ersten 8 durch das erste Register in das zweite Register fließen und dort ausgedrückt werden. Sie können das aus dem zweiten Beispiel lernen. 3-Staaten bezieht sich auf die Tatsache, dass Sie die Ausgangspins entweder als hoch, niedrig oder hochohmig einstellen können. Im Gegensatz zu den HOCH - und NIEDRIGEN Staaten können Sie die Stifte in ihren hochohmigen Zustand einzeln setzen. Sie können den ganzen Chip nur zusammen setzen. Dies ist eine ziemlich spezialisierte Sache zu tun - Denken Sie an ein LED-Array, die möglicherweise von völlig verschiedenen Mikrocontrollern abhängig von einer bestimmten Modus-Einstellung in Ihrem Projekt eingebaut werden müssen. Weder das Beispiel nutzt dieses Feature und man braucht sich in der Regel nicht um einen Chip zu kümmern, der es hat. Hier ist eine Tabelle, die die aus dem Phillips-Datenblatt angepassten Pin-Outs erläutert. Der erste Schritt ist, Ihr Arduino mit einem Schieberegister zu erweitern. Die Stromkreise 1. Einschalten: GND (Pin 8) auf Masse, Vcc (Pin 16) bis 5V OE (Pin 13) auf Masse MR (Pin 10) bis 5V Diese Einstellung macht alle Ausgangspins Aktiv und adressierbar die ganze Zeit. Der einzige Fehler dieses Aufbaus ist, dass Sie am Ende mit den Lichtern, die auf ihren letzten Zustand oder irgendetwas beliebig jedes Mal, wenn Sie zuerst die Schaltung der Schaltung, bevor das Programm beginnt zu laufen. Sie können dies durch die Kontrolle der MR und OE Pins aus Ihrem Arduino Board zu bekommen, aber dieser Weg wird funktionieren und lassen Sie mit offeneren Pins. 2. Verbinden Sie mit dem Ardunio DigitalPin 11 (Pin 11) mit dem Ardunio DigitalPin 11 (blauer Draht) SHCP (Pin 11) zu Ardunio DigitalPin 12 (gelber Draht) STCP (Pin 12) zu Ardunio DigitalPin 8 (grünes Kabel) Werden als das dataPin, das clockPin bzw. das latchPin bezeichnet. Beachten Sie den 0.1f Kondensator auf dem LatchPin, wenn Sie etwas Flimmern haben, wenn der Latch-Pin Impulse können Sie einen Kondensator verwenden, um es sogar aus. 3. 8 LEDs hinzufügen. In diesem Fall sollten Sie die Kathode (kurzer Stift) jeder LED an eine gemeinsame Masse anschließen und die Anode (langer Stift) jeder LED an den jeweiligen Schieberegisterausgangsstift anschließen. Mit dem Schieberegister, um Strom wie diese zu liefern, heißt Sourcing Strom. Einige Schieberegister können keine Quellstrom haben, sie können nur das tun, was man als Sinkstrom bezeichnet. Wenn du eines von denen hast, bedeutet das, dass du die Richtung der LEDs umdrehen musst. Setzen der Anoden direkt an die Stromversorgung und die Kathoden (Massepins) an die Schieberegisterausgänge. Sie sollten das spezifische Datenblatt überprüfen, wenn Sie Arent mit einem 595-Serie-Chip verwenden. Vergessen Sie nicht, einen 220-Ohm-Widerstand in Serie hinzuzufügen, um die LEDs vor Überlastung zu schützen. Schaltplan Hier sind drei Codebeispiele. Der erste ist nur ein Hallo Weltcode, der einfach einen Bytewert von 0 bis 255 ausgibt. Das zweite Programm leuchtet jeweils eine LED. Der dritte Zyklus durch ein Array. Der Code basiert auf zwei Informationen im Datenblatt: das Zeitdiagramm und die Logiktabelle. Die Logiktabelle ist, was Ihnen sagt, dass im Grunde alles Wichtige passiert auf einem up Beat. Wenn der Taktgeber von niedrig nach hoch geht, liest das Schieberegister den Zustand des Datenstifts. Wenn die Daten verschoben werden, wird sie in einem internen Speicherregister gespeichert. Wenn der LatchPin von niedrig nach hoch geht, werden die gesendeten Daten von den Schieberegistern des oben erwähnten Speicherregisters in die Ausgangsstifte verschoben, wobei die LEDs beleuchtet werden. In diesem Beispiel füge ein zweites Schieberegister hinzu und verdoppelst die Anzahl der Ausgangsstifte, die du hast, während du immer noch die gleiche Anzahl von Stiften aus dem Arduino benutzt. Die Schaltung 1. Füge ein zweites Schieberegister hinzu. Ausgehend von dem vorherigen Beispiel solltest du ein zweites Schieberegister auf die Tafel legen. Es sollte das gleiche zu Macht und Boden führen. 2. Verbinden Sie die 2 Register. Zwei dieser Verbindungen verlängern einfach das gleiche Takt - und Latch-Signal vom Arduino zum zweiten Schieberegister (gelbe und grüne Drähte). Der blaue Draht geht vom seriellen Ausgangspin (Pin 9) des ersten Schieberegisters zum seriellen Dateneingang (Pin 14) des zweiten Registers. 3. Einen zweiten Satz von LEDs hinzufügen. In diesem Fall habe ich grüne hinzugefügt, also beim Lesen des Codes ist es klar, welches Byte zu welchem ​​Satz von LEDs führt Schaltplan Hier sind wieder drei Code-Samples. Wenn Sie neugierig sind, möchten Sie vielleicht versuchen, die Proben aus dem ersten Beispiel mit dieser Schaltung eingerichtet, nur um zu sehen, was passiert. Code Sample 2.1 Dual Binärzähler Es gibt nur eine zusätzliche Codezeile im Vergleich zum ersten Codebeispiel aus Beispiel 1. Es sendet ein zweites Byte aus. Dies zwingt das erste Schieberegister, das direkt an den Arduino angeschlossen ist, das erste Byte, das durch das zweite Register geschickt wird, zu übergeben und die grünen LEDs zu beleuchten. Das zweite Byte erscheint dann auf den roten LEDs. Code Sample 2.2 2 Byte One By One Beim Vergleich dieses Codes mit dem ähnlichen Code aus Beispiel 1 sehen Sie, dass sich ein bisschen mehr geändert hat. Die Funktion blinkAll () wurde in die Funktion blinkAll2Bytes () geändert, um die Tatsache zu berücksichtigen, dass jetzt 16 LEDs zu steuern sind. Auch in der Version 1 befanden sich die Pulsationen des LatchPins innerhalb der Teilfunktionen lightShiftPinA und lightShiftPinB (). Hier müssen sie zurück in die Hauptschleife bewegt werden, um die Notwendigkeit, jede Unterfunktion zweimal hintereinander laufen zu lassen, einmal für die grünen LEDs und einmal für die roten. Code Sample 2.3 - Dual Defined Arrays Wie Beispiel 2.2, Beispiel 2.3 nutzt auch die neue Funktion blinkAll2bytes (). 2.3s großer Unterschied von Probe 1.3 ist nur, dass anstatt nur eine einzige Variable namens Daten und ein einziges Array namens dataArray haben Sie eine dataRED, eine dataGREEN, dataArrayRED, dataArrayGREEN definiert vorne. Dies bedeutet, dass ZeilendatenRED dataArrayREDj dataGREEN dataArrayGREENj shiftOut (dataPin, clockPin, data) shiftOut (dataPin, clockPin, dataGREEN) shiftOut (dataPin, clockPin, dataRED) Begonnen von Carlyn Maw und Tom Igoe Nov, 06

No comments:

Post a Comment