Hallo Zusammen, Ich habe jetzt schon viel gesucht, aber so richtig fündig geworden bin ich noch nicht. Ich bin auf der Suche nach einer guten Erklärung, sei es ein Video oder eine Anleitung, etc. für einen Schieberegister Parallel in - Serial Out, wie den cd4021b. Will das ganze für meinen Arduino verwenden und die Daten vom Arduino aus senden und dann seriell an was anderes weiterschicken. Kann mir einer was empfehlen? Am besten natürlich auf Deutsch, Englisch geht auch, ist aber ab und zu nicht ganz so verständlich Schönen Abend noch
Warum schickst Du die Daten nicht gleich seriell aus dem Arduino raus?
Warum wird eigentlich heute zu jedem Pippifax ein Erklärvideo erwartet? Was soll man dazu in einem Video zeigen, was das Datenblatt oder ein kurzer Text bzw. Codeauszug nicht darstellen kann? Mit freundlichen Grüßen Thorsten Ostermann
Hi, ich kenne zwar deine Anwendung nicht, aber warum möchtest du die Daten erst parallel an die Pins anlegen und dann erst zu seriellen wandeln? Ist ein µC nicht gerade dazu prädesteniert die Daten direkt seriell zu senden und so Pins und Hardware zu sparen?
Vielleicht geht es ja um eine Hausaufgabe o.ä. Also ist der TE in der Lernphase und muss sich weiterbilden. Viel Erfolg.
@google Will das Timing nicht über den Arduino, bzw. selbst regeln. Tut jetzt nichts zur Sache, aber das will ich in diesem Fall nicht machen. @Thorsten Ostermann Weil da steht, dass es auch eine normale Erklärung tut. Warum meint in jedem Forum immer jeder, der mehr Ahnung hat, als einer der neu ist, ihn wegen irgendwas blöd anmachen zu müssen. Gib doch dein Expertenwissen woanders weiter, helfen willst du mir ja anscheinend nicht. Das Datenblatt erklärt es eben nicht, ich will wissen wie ich das Teil benutzen kann und kein Datenblatt sehen, wenn du einen Codeauszug hast, der mir das erklärt immer her damit. Ich hab diverse Seiten besucht und auch in meinem Buch geschaut, da wird immer nur ein Serial in - Parallel out erklärt und nein, ich verstehe es nicht, auch wenn ich das gelesen habe. Ich würde nicht fragen, hätte ich nicht schon knapp zwei Stunden gesucht und probiert. Tut mir leid, wenn diese Zeit dir zu viel ist, um es selbst rausgefunden zu haben, aber ich hab halt wohl nicht so viel Ahnung wie du, weswegen ich unter anderem hier nachfrage. Gruß
Und nein, es geht nicht um irgendeine Hausaufgabe, ich arbeite nur an einem Projekt und versuche es nun auf diesem Weg. Wer mehr wissen will, kann gerne mein anderes Thema besuchen, ich wollte euch damit aber eben nicht nerven, sondern nur das wissen, damit ich selbst weiterprobieren kann.
Wo finde ich Dein anderes Thema?
Thomas M. schrieb: > Das > Datenblatt erklärt es eben nicht Was ist Dir an "Table 3. Function table" denn unklar? Ich glaube nicht, daß es Videos zu Datenblättern gibt. Gebräuchlicher ist das 74HC165, dafür findet man auch haufenweise Codebeispiele.
Hi Thomas, ich habe keine Abneigung dir zu Helfen und gehe gerne so vor, Hilfe zur Selbsthilfe anzuleiten. D.h. was ist im Datenblatt des 74HC165 unklar? siehe Tabelle 3. -- init DL ist LOW CP ist LOW #CE ist HIGH #PL ist HIGH -- daten input #PL auf LOW Datenan D7-D0 legen #PL auf HIGH -- daten serial output An Q7 und #Q7 liegt nun D7, bzw. #D7 #CE auf LOW [ -- loop D6,..,D0 CP auf HIGH pause - siehe Datenblatt CP auf LOW An Q7 und #Q7 liegt nun D6, bzw. #D6 ] - end
Thomas M. schrieb: > Das > Datenblatt erklärt es eben nicht, ich will wissen wie ich das Teil > benutzen kann und kein Datenblatt sehen Im DB befindet sich die Logiktabelle, die erklärt, wie man das Teil benutzen kann. Dein Problem ist einfach nur, dass du unfähig bist, selbst so primitive Sachen wie diese Logiktabelle zu lesen und zu verstehen. Und dagegen hilft nur etwas, bei dem dir niemand wirklich helfen kann: LERNEN. Da mussten alle anderen auch durch...
Ein Schieberegister ist doch etwas eher Kompliziertes. Dafuer sollte man einen 3 Tageskurs im Kongresshotel ansetzen. In lockeren 6 Halbtags Lektionen, mit 2 Stunden pro Pin. Ich wuerd diesen Kurs fuer 1850 Euro inklusive Mahlzeiten und 2 Uebernachtungen anbieten.
Thomas M. schrieb: > Ich bin auf der Suche nach einer guten Erklärung, sei es > ein Video oder eine Anleitung, etc. Bitte sehr, bitte gleich: www.youtube.com/watch?v=3IsJiR3mSa0
Karl M. schrieb: > Hi Thomas, > > ich habe keine Abneigung dir zu Helfen und gehe gerne so vor, Hilfe zur > Selbsthilfe anzuleiten. > D.h. was ist im Datenblatt des 74HC165 unklar? Anschlussfrage: Bzw. was ist denn generell an der Funktion eines Schieberegisters unklar? Ein Schieberegister ist eine Kette, wie eine Kette Feuerwehrmänner, die Eimer zum jeweils nächsten weiterreichen. Die Eimer können gefüllt oder auch nicht gefüllt sein. Damit da Ordnung ins Chaos kommt, kann nicht einfach jeder seinen Eimer weiterreichen wie er lustig ist, sondern das geht auf Kommando. Also muss es ein Kommando geben, welches bedeutet: Uuuuuund jetzt, jeder gibt seinen Eimer zum nächsten weiter. Und genauso kann nicht jeder einfach wie er lustig ist, seinen Eimer ausleeren, sondern auch das geht auf Kommando: uuunnnd ausleeren. That's it. Das ist ein seriell->parallel Schieberegister. An einem Ende steht einer und befüllt die Eimer und schickt sie in die Kette hinein. Mit jedem Kommando wandern die Eimer einen Mann weiter und wenn jeder seinen ihm zugedachten Eimer hat, wird ausgeleert. In der umgekehrten Richtung parallel->seriell, stehen die Feuerwehrmänner vor jeweils einem Wasserhahn und auf Kommando lässt jeder seinen Eimer vollaufen oder auch nicht, wenn es dem Hahn eben kein Wasser kommt. Ist das erledigt, dann gibt wieder jeder seinen Eimer auf Kommando an den nächsten weiter und am Ende der Kette taucht nacheinander ein gefüllter oder ein leerer Eimer auf. Aus der Reihenfolge gefüllt/nicht gefüllt lässt sich ablesen, aus welchem Wasserhahn Wasser gekommen ist und aus welchem nicht. That's it. Das ist ein parallel->seriall Schieberegister. Die Eimer werden parallel (= alle gleichzeitig) gefüllt und an einem Ende tauchen sie seriell (= einer nach dem anderen, im Gänsemarsch) wieder auf. Anzumerken ist noch, dass im Falle von elektronischen Schieberegistern die Kommandos in Form von Pulsen kommen. Bei den Feuerwehrmännern könnte man sagen, da stehen halt 2 Typen rum, die jeweils eine Taschenlampe ein bzw. ausschalten und beispielsweise das Einschalten der Taschenlampe signalisiert der ganzen Kette, den Eimer weiterzureichen. Es könnte auch das Ausschalten sein, das ist dann einfach nur Vereinbarungssache. Wenn du das bis hier her verstanden hast, dann hast du auch Schieberegister in ihren Grundprinzipien verstanden. Genau das ist es. Mehr gibt es zu Schieberegistern im Prinzip nicht zu sagen. Alles weitere sind technische Details, wie zb das es am IC einen Eingang gibt, mit dem man alle Ausgänge gemeinsam abschalten kann. Aber in der Kernfunktion ist mit der Feuerwehrkette alles gesagt, was man über Schieberegister wissen muss. Und das hat keine 2 Stunden gedauert. Und wenn du jetzt sagst "Was, das ist alles? So simpel ist das?", dann kannst du vielleicht verstehen, warum hier einige verwundert den Kopf schütteln, warum man für so etwas Triviales ein Video zur Erklärung benötigt. Überhaupt nachdem derjenige schon Studien angestellt hat. Denn die meisten Dinge in der Technik sind absolut trivial und sind sehr oft an Vorgängen im täglichen Leben angelehnt. Auch Techniker und Ingenieure sind keine Wunderwuzzi, sondern sehen sich oft einfach nur an, wie wir im täglichen Leben ähnliche Problemstellungen meistern und fassen das dann in eine formale und technische Implementierung. Aber die Prinzipien sind oft einfach nur dem täglichen Leben abgeschaut und da wie dort identisch. Wer mit offenen Augen durchs Leben geht und sich überlegt wie Dinge wohl funktionieren oder organisiert werden, wird vielerlei Übereinstimmungen finden. Vor allen Dingen dann, wenn es um Erklärungen für technisches Urgestein geht. Einen modernen Grafikprozessor wird man so nicht erklären können (auch wenn sich in Teilbereichen so manches wiederfindet), aber das meiste der Grundschaltungen findet sich an vielen anderen Stellen in einer anderen Implementierung aber identischem Prinzip wieder.
:
Bearbeitet durch User
Super, mit dem Video und der Erklärung von Karl Heinz hat es dann endlich geklappt. Habe gestern auch noch diesen Kurs gemacht, die bieten auch Abendkurse für 599€ an. Der hat mir gestern dann doch noch alles erklärt. Jetzt mal im ernst. Hätte ich es zum Laufen gebracht, hätte ich nicht gefragt, ich weiß, dass ich hier, egal wie wenig Ahnung ich habe, selbst versuchen sollte weiter zu kommen. Ich weiß wie ein Serial in-Parallel Out Register funktioniert und kann es auch benutzen. Ich hab natürlich nicht aufgepasst und hätte sowieso ein Parallel in-Serial Out gebraucht, nur leider funktioniert es bei mir nicht, deswegen dachte ich mir, frage ich mal nach, vll hilft mir ja jemand und ich kann das abkürzen. Wenn nicht, schau ich halt weiter, wird irgendwann schon in meinen Schädel reingehen. Und nein, es ist eben nicht immer alles Trivial, klar hab ich verstanden, was der Schieberegister tut und wofür man ihn einsetzen kann, weswegen ich ihn ja benutzen will. Die Tabelle check ich nicht, muss ich mich halt einlesen, deswegen kam gestern auch keine Antwort mehr. Wie lang ich dafür brauche, ist meine Sache, helfen tut sie mir bis jetzt nicht. Die Feuerwehrmanngeschichte ist ebenfalls keine Hilfe, ich hätte mir wohl kaum ein Schieberegister zugelegt, wenn ich nicht wüsste, was es tut. Es gibt immer noch einen Unterschied zwischen der Funktionsweise, der Funktion, und einer Anwendung, welche die Funktion verdeutlicht. Ich weiß ja nicht, wie ihr euer Wissen angesammelt habt, auf welchem Weg und von welcher Quelle. Aber wenn man nach zwei Monaten (mit zwei Monaten Pause) die Funktionsweise im Selbststudium, mithilfe 2er Bücher für den Arduino, die es nicht für angemessen halten, mir die Funktionsweise beider Schieberegister zu erklären, dann ist es vielleicht verständlich, dass ich da einfach nicht weiter weiß, egal wie dumm diese Frage für manche von euch klingen mag. Bevor ich weiter eure und meine Zeit verschwende, setze ich mich selber wieder ran und quäle euch wieder, wenn ich fragen hab, die eurer hoffentlich würdig sind. Falls ihr vergessen habt, dass es keinen Zwang gibt, auf jedes Thema zu antworten, möchte ich euch hiermit gerne darauf hinweisen. Vielleicht wäre dadurch der Prozentsatz an hilfreicher Antworten deutlich höher. Schönen Tag noch
:
Bearbeitet durch User
Thomas M. schrieb: > Die Tabelle check ich nicht, Was ist daran unklar? Mit so etwas umzugehen ist elementares Grundwissen, das ist eine Fähigkeit, die man sich unbedingt aneignen muss.
Thomas M. schrieb: > Es gibt immer noch einen Unterschied zwischen der > Funktionsweise, der Funktion, und einer Anwendung, welche die Funktion > verdeutlicht. Dann ist dir nicht zu helfen. > Ich weiß ja nicht, wie ihr euer Wissen angesammelt habt, > auf welchem Weg und von welcher Quelle. Bei mir: Indem ich so einen Baustein auf ein STeckbrett gesteckt habe, an den Eingängen entprellte Taster gelegt habe, an die Ausgänge ein paar LED und einfach 15 Minuten probiert habe. Dasselbe bei der Ansteuerung durch einen µC. Da im Datenblatt nichts steht, dass man nicht zu langsam sein darf, kann man ein Schieberegister an einen µC hängen und anstatt 'full Speed' mit ein paar 100 kHz kann man den auch mit reichlich Wartezeiten im Programm ansteuern, sodass man mit ein paar LED an den Ein/Ausgängen nachvollziehen kann, in welcher Reihenfolge welcher Pin von 0 auf 1 bzw umgekehrt geht. Und dann probiert man halt und überlegt sich, was wohl die logisch vernünftigste Reihenfolge sein wird. Denn wie gesagt: Bei vielen Dingen ergibt sich die Reihenfolge ganz von alleine, wenn man nur überlegt, dass zuerst der gewünschte Wert da sein muss und erst dann das Kommando kommen kann, mit diesem Wert etwas zu machen. Eine Binsenweisheit.
:
Bearbeitet durch User
wie immer nur hier...einer versteht etwas nicht, WESHALB auch immer..vielleicht weil er einfach mit einem Video z.B. Dinge besser versteht, manche lernen durch anfassen besser..andere durch ein Bucht.. Jeder der in der Oberstufe..ne, Mittelstufe war hatte die unterschiedlichen lerntypen..mehr sag ich dazu nicht, sonst heißt es wieder ich würde Beleigungen schreiben haha Moderatoren sollten sich Kommentare jedweder Art sowieso sparen, das ist nicht die Aufgabe, die Fähigkeiten des Threatstarters in Frage zu stellen Solche Aussagen von einem Moderator "Dann ist dir nicht zu helfen." Sind ein ein Unding
:
Bearbeitet durch User
Thomas M. schrieb: > leider funktioniert es bei mir nicht um eine effektive Hilfe zu ermöglichen, hättest Du dann vielleicht besser einfach mal konkret beschreiben sollen, was Du im einzelnen gemacht hast und was genau nicht geht. Wenn Du im Prinzip schon weisst, wie das Schieberegister funktioniert, aber es in Deinem Fall eben nicht tut, kann eine allgemeine Frage "wie funktioniert das mit dem Schieberegister" auch nicht zu vernünftigen Antworten führen.
:
Bearbeitet durch User
Hier ist ein Programmentwurf für eine Bedienoberfläche, wie mit rüden Antworten umgegangen werden kann. MfG Paul
Thomas M. schrieb: > nur leider funktioniert es bei mir nicht Das Problem für einen Außenstehenden ist aber, zu erkennen, was bei Dir nicht funktioniert. Da sich niemand bei Dir an den PC setzen kann, hilft nur, daß Du das Problem so ausführlich wie möglich beschreibst. Erst dann kann man auch helfen. Vielleicht ist Dein Problem aber auch, das Signalspiel in Code umzusetzen. Der falsche Ansatz ist dabei, einfach drauflos zu programmieren. Mach Dir doch erstmal einen Programmablaufplan. Du kannst jederzeit Code, den Du kommentiert hast oder Handskizzen als Anhang senden, damit wir uns das anschauen können. Als Anhang ist immer deutlich besser, als ins Posting einzufügen.
Thomas E. schrieb: > Thomas M. schrieb: >> leider funktioniert es bei mir nicht > > um eine effektive Hilfe zu ermöglichen, hättest Du dann vielleicht > besser einfach mal konkret beschreiben sollen, was Du im einzelnen > gemacht hast und was genau nicht geht. Wenn Du im Prinzip schon weisst, > wie das Schieberegister funktioniert, aber es in Deinem Fall eben nicht > tut, kann eine allgemeine Frage "wie funktioniert das mit dem > Schieberegister" auch nicht zu vernünftigen Antworten führen. Ganz genau so ist es.
Thomas E. schrieb: > Thomas M. schrieb: >> leider funktioniert es bei mir nicht > > um eine effektive Hilfe zu ermöglichen, hättest Du dann vielleicht > besser einfach mal konkret beschreiben sollen, was Du im einzelnen > gemacht hast und was genau nicht geht. Wenn Du im Prinzip schon weisst, > wie das Schieberegister funktioniert, aber es in Deinem Fall eben nicht > tut, kann eine allgemeine Frage "wie funktioniert das mit dem > Schieberegister" auch nicht zu vernünftigen Antworten führen. Thomas M. schrieb: >> nur leider funktioniert es bei mir nicht >Das Problem für einen Außenstehenden ist aber, zu erkennen, was bei Dir >nicht funktioniert. >Da sich niemand bei Dir an den PC setzen kann, hilft nur, daß Du das >Problem so ausführlich wie möglich beschreibst. Erst dann kann man auch >helfen. >Vielleicht ist Dein Problem aber auch, das Signalspiel in Code >umzusetzen. Der falsche Ansatz ist dabei, einfach drauflos zu >programmieren. Mach Dir doch erstmal einen Programmablaufplan. >Du kannst jederzeit Code, den Du kommentiert hast oder Handskizzen als >Anhang senden, damit wir uns das anschauen können. >Als Anhang ist immer deutlich besser, als ins Posting einzufügen. Das wollte ich gezielt vermeiden, da das Projekt an welchem ich arbeite nicht gerade wenig ist und ich das euch eigentlich ersparen wollte. Oben hab ich das Thema verlinkt, daran arbeite ich, versuche einen der Vorschläge umzusetzen, eben mit einem Schieberegister. Wer sich das durchlesen will, kann das gerne tun. Was ich eigentlich versuchen will ist folgendes. Ich will die Eingänge des Schieberegisters über den Arduino ansteuern und die Clock und den Latch woanders her bekommen. Um zu verstehen wie der Schieberegister funktioniert meinetwegen können clock und latch auch vom Arduino ausgehen. Was ich ansteuern will um zu verstehen wie es funktioniert weiß ich nicht genau. Ich nehme mal an ein Pieper oder eine LED die dann eben so blinkt, wie ich das parallel eingegeben habe, ist fürs Verständnis ganz gut. Also hab ich 10 Output vom Arduino, 8 Datenpins, 1 clock und 1 latch. Über den Seriellen Ausgang, bei meinem 4021B ist das Q8 möchte ich dann eben eine LED oder sonst was anschließen um zu schauen ob es funktioniert. Mein eigentliches Problem ist: Wie schaut bei sowas der Code aus, wie steuer ich den latch und die clock, was genau kommt in welcher Reihenfolge. Klar, will ich nicht alles wissen, ein kleiner Hinweis was ich machen könnte, ein kleines Codebeispiel, für euch sicher in wenigen Minuten kein Problem, würde mir wohl sehr weiterhelfen. Gruß
Thomas M. schrieb: > > Also hab ich 10 Output vom Arduino, 8 Datenpins, 1 clock und 1 latch. > Über den Seriellen Ausgang, bei meinem 4021B da das ein parallel->seriell ist:
1 | 8 Datenausgänge auf die richtigen Pegel stellen |
2 | |
3 | "Parallel Load" vom IC auf High |
4 | "Parallel Load" vom IC wieder auf Low |
5 | |
6 | zu diesem Zeitpunkt hat der IC die 8 Datenbits |
7 | übernommen |
8 | |
9 | Der Ausgang Q7 nimmt dann schon den Pegel vom höchsten |
10 | geladenen Datenbit an. |
11 | |
12 | |
13 | "Clock" vom IC auf High |
14 | zu diesem Zeitpunkt erscheint das nächste Datenbit |
15 | am Ausgang |
16 | "Clock" vom IC wieder Low |
17 | |
18 | |
19 | "Clock" wieder auf High |
20 | das nächste Datenbit kommt raus |
21 | "Clock" wieder auf Low |
22 | |
23 | |
24 | "CLock" auf High |
25 | und das nächste purzelt raus |
26 | "Clock" auf Low |
27 | |
28 | |
29 | etc. etc. |
:
Bearbeitet durch User
Karl H. schrieb: > Thomas M. schrieb: > >> >> Also hab ich 10 Output vom Arduino, 8 Datenpins, 1 clock und 1 latch. >> Über den Seriellen Ausgang, bei meinem 4021B > > > da das ein parallel->seriell ist: > >
1 | > |
2 | > 8 Datenausgänge auf die richtigen Pegel stellen |
3 | > |
4 | > "Parallel Load" vom IC auf High |
5 | > "Parallel Load" vom IC wieder auf Low |
6 | > |
7 | > zu diesem Zeitpunkt hat der IC die 8 Datenbits |
8 | > übernommen |
9 | > |
10 | > Der Ausgang Q7 nimmt dann schon den Pegel vom höchsten |
11 | > geladenen Datenbit an. |
12 | > |
13 | > |
14 | > "Clock" vom IC auf High |
15 | > zu diesem Zeitpunkt erscheint das nächste Datenbit |
16 | > am Ausgang |
17 | > "Clock" vom IC wieder Low |
18 | > |
19 | > |
20 | > "Clock" wieder auf High |
21 | > das nächste Datenbit kommt raus |
22 | > "Clock" wieder auf Low |
23 | > |
24 | > |
25 | > "CLock" auf High |
26 | > und das nächste purzelt raus |
27 | > "Clock" auf Low |
28 | > |
29 | > |
30 | > etc. etc. |
31 | > |
1 | #define Data_pin1 0
|
2 | #define Data_pin2 1
|
3 | #define Data_pin3 2
|
4 | #define Data_pin4 3
|
5 | #define Data_pin5 4
|
6 | #define Data_pin6 5
|
7 | #define Data_pin7 6
|
8 | #define Data_pin8 7
|
9 | |
10 | #define Latch_Pin 11
|
11 | #define Clock_Pin 12
|
12 | #define Data_out 13
|
13 | |
14 | |
15 | void setup() { |
16 | |
17 | pinMode(Data_pin1,OUTPUT); |
18 | pinMode(Data_pin2,OUTPUT); |
19 | pinMode(Data_pin3,OUTPUT); |
20 | pinMode(Data_pin4,OUTPUT); |
21 | pinMode(Data_pin5,OUTPUT); |
22 | pinMode(Data_pin6,OUTPUT); |
23 | pinMode(Data_pin7,OUTPUT); |
24 | pinMode(Data_pin8,OUTPUT); |
25 | pinMode(Latch_Pin,OUTPUT); |
26 | pinMode(Clock_Pin,OUTPUT); |
27 | }
|
28 | |
29 | |
30 | void loop() { |
31 | digitalWrite(Data_pin1,HIGH); |
32 | digitalWrite(Data_pin2,LOW); |
33 | digitalWrite(Data_pin3,HIGH); |
34 | digitalWrite(Data_pin4,LOW); |
35 | digitalWrite(Data_pin5,HIGH); |
36 | digitalWrite(Data_pin6,LOW); |
37 | digitalWrite(Data_pin7,HIGH); |
38 | digitalWrite(Data_pin8,LOW); |
39 | |
40 | digitalWrite(Latch_Pin,HIGH); |
41 | digitalWrite(Latch_Pin,LOW); |
42 | for(int i=0;i<8;i++){ |
43 | digitalWrite(12,HIGH); |
44 | digitalWrite(12,LOW); |
45 | delay(500); |
46 | }
|
47 | |
48 | }
|
Vielen Dank, das hat mir geholfen. Nur noch zwei Fragen: Gibt es irgendwelche Mindestlängen der Latch und Clock-Impulse? Verwende ich am Data_Pin8 einen HIGH-Zustand, wird dieser nicht an der LED wiedergegeben.
Max S. schrieb: > Solche Aussagen von einem Moderator "Dann ist dir nicht zu helfen." > Sind ein ein Unding Tja, es gibt wohl immer wieder Leute, denen die ungeschminkte Darstellung der objektiven Wahrheit als "Unding" erscheint... Tatsache ist aber nunmal, dass das verstehende Lesen von Logiktabellen unverzichtbare Grundlage zum souveränen Einsatz von Logik-ICs ist. Da kannst du dich auf den Kopf stellen und mit dem Arsch Fliegen fangen, das bleibt auch dann noch so. Und wer das nicht kann, muss es halt lernen, genau so, wie alle es lernen mussten, die es schon können. Natürlich kann es passieren, dass man bestimmte Details der Logiktabellen (insbesondere der von getakteten ICs) nicht auf Anhieb versteht, das ist doch klar. Dann kann man nach eben diesen Details fragen. Das erzeugt dann auch ein völlig anderes Bild der Antworten, denn es zeigt gleich zwei Sachen: der Fragende ist gewillt zu lernen und er müht sich auch aktiv, das zu tun. Wenn allerdings auch mehrere deutliche Hinweise in Richtung Logiktabelle schnodderig ignoriert werden und weiter nur nach C&P-Wichsvorlagen oder YT-Coachpotato-Krams gehechelt wird, dann muss sich der Delinquent nicht wundern, wenn er für faul und merkbefreit gehalten und dann eben auch entsprechend behandelt wird.
Thomas M. schrieb: > Vielen Dank, das hat mir geholfen. Nur noch zwei Fragen: Gibt es > irgendwelche Mindestlängen der Latch und Clock-Impulse? > Verwende ich am Data_Pin8 einen HIGH-Zustand, wird dieser nicht an der > LED wiedergegeben. Der müsste bereits nach dem ersten Latch High-Low am Ausgang Q7 anliegen. D.h. laut diesem Datenblatt http://www.nxp.com/documents/data_sheet/HEF4021B.pdf d.h. ich würde mir halt mal nach dem Latch ein Delay einbauen und technisch gesehen brauchst du dann auch nur 7 Clock Pulse. Weil das erste Bit ist ja sofort nach dem Latchenn da, und dann bleiben noch 7 die rausgetaktet werden sollen
1 | digitalWrite(Latch_Pin,HIGH); |
2 | digitalWrite(Latch_Pin,LOW); |
3 | |
4 | delay(500); |
5 | |
6 | for(int i=0;i<7;i++){ |
7 | digitalWrite(12,HIGH); |
8 | digitalWrite(12,LOW); |
9 | delay(500); |
10 | }
|
:
Bearbeitet durch User
Thomas M. schrieb: > Vielen Dank, das hat mir geholfen. Nur noch zwei Fragen: Gibt es > irgendwelche Mindestlängen der Latch und Clock-Impulse? Ja gibt es. Steht alles in dem verdammten Datenblatt zu dem genauen IC-Typ den du hast http://www.redrok.com/CMOS_CD4021BC_8-StageStaticShiftRegister_Fairchild.pdf (und nein, die Mindestlängen wirst du mit deinem mittels digitalWrite schaumgebremsten AVR-Arduino bei weitem nicht erreichen. Dazu ist er nicht schnell genug).
:
Bearbeitet durch User
Ok, danke hierfür, jetzt klappt das. Das Timing soll der Arduino später nichtmehr übernehmen, sondern die Clock und der Latch kommen woanders her und haben eine Länge von 12µs bzw. 6µs. Aber ich werd das jetzt einfach ausprobieren...
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.