INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
undefinierter Zustand beim Einschalten
24.10.2015, 17:22
Beitrag #9
RE: undefinierter Zustand beim Einschalten
(24.10.2015 16:24)hotsystems schrieb:  Und du willst also einen Atmegaausgang, der intern auf 5 Volt schaltet, mit einem 220 KOhm oder größer auf Null Volt schalten, na dann viel Vergnügen.
Nein, das will er nicht. Beim Einschalten sind die ganzen Pins erstmal auf Eingang geschaltet, d.h. hochohmig. Das bedeutet, dass wenn irgendeine Hardware dahinter hängt, die den Pin als Ausgang erwartet, dann hängt sozusagen diese Hardware in der Luft. Das soll durch den Widerstand erledigt werden.
Sobald der Pin als Ausgang geschaltet ist macht der Widerstand gar nichts mehr.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
24.10.2015, 17:33
Beitrag #10
RE: undefinierter Zustand beim Einschalten
(24.10.2015 16:24)hotsystems schrieb:  @Bitklopfer
Also von Elektronik brauchst du mir nichts erzählen.

Und du willst also einen Atmegaausgang, der intern auf 5 Volt schaltet, mit einem 220 KOhm oder größer auf Null Volt schalten, na dann viel Vergnügen.

Was die Fuses und den Bootloader betrifft, magst du recht haben, hier ist ja auch meine Aussage, habe ich noch nicht gemacht und somit fehlt mir hierzu die Erfahrung.

@hotsystems,
also anscheinend muß ich dir da wirklich was erzählen. Thorsten hat es hier ja nochmals verdeutlicht.
Und um dich zu beruhigen, ich bin gelernter Elektroniker mit 40 Jahren Berufserfahrung.
Und diese 220KOhm nötigen dem Port wenn er eine 1 ausgibt maximal 22Mikroampere ab, also 0,000022 Ampere...dabei liefert ein Port jederzeit bis zu 0,020000 Ampere. Also wo soll es da ein Problem geben Bitte Big Grin
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 08:21
Beitrag #11
RE: undefinierter Zustand beim Einschalten
Das mit dem Widerstand leuchtet mir ein, ja.
Solange der Port nicht weis, was er macht, sorgt der Widerstand für klare Verhältnisse (0).

Je nach angehängter Schaltung reicht dazu auch ein Widerstand mit 1Mohm.
In gewissen Grenzen wird jeder Widerstand den Ausgang etwas verzögern.
Aber das wird wohl kaum messbar sein.

Vielen Dank, Freunde!

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 10:43
Beitrag #12
RE: undefinierter Zustand beim Einschalten
Ok, ich glaube ich habe da ein wenig daneben gelegen.
Thorsten hat es für mich verständlich erklärt. Ich war davon ausgegangen, die Ausgänge liefern schon Spannung, das ist dann aber falsch.
Ich habe jetzt mitbekommen, der Atmega liefert bis zum Beenden des Setup keine feste Spannung, die man mit der externen Beschaltung in Griff bekommt.
Ok und vielen Dank für die Erklärung an Bitklopfer und Thorsten.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 12:12
Beitrag #13
RE: undefinierter Zustand beim Einschalten
(25.10.2015 10:43)hotsystems schrieb:  ..
Ich habe jetzt mitbekommen, der Atmega liefert bis zum Beenden des Setup keine feste Spannung, die man mit der externen Beschaltung in Griff bekommt.
Ok und vielen Dank für die Erklärung an Bitklopfer und Thorsten.

auch nicht ganz richtig, im Setup kann man einen Port definieren...muß es aber nicht. Ein Portpegel der ein Ausgang sein soll ist erst dann definiert wenn er initialisiert ist mit:
pinMode(13, OUTPUT); // Port Pin ist nun ein Ausgang
und z.B. ein Ausgangspegel ausgegeben wurde.
digitalWrite(13, LOW); // Ausgang liefert nun einen NULL Pegel
vorher ist der Pegel eines PortPin's als undefiniert anzusehen.

Bei einem Pin der als Eingang verwendet werden soll ist das wieder ein bischen anderster.
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 12:42
Beitrag #14
RE: undefinierter Zustand beim Einschalten
Hi,
ein kleiner Teil ist mir selbst aber dennoch nicht ganz klar:
Ist ein Pin als Eingang definiert, also INPUT oder INPUT_PULLUP, dann ist er hochohmig. Wenn man dort eine Schaltung anschließt, die einen Ausgang erwartet, dann hängt diese Schaltung sozusagen in der Luft. Wenn man jetzt ein pinMode(pin, OUTPUT) macht, dann ist der Pin nicht mehr hochohmig und wird wohl sofort irgendeinen Zustand haben. Bevor man aber kein digitalWrite(pin,HIGH/LOW) macht, ist der Zustand des Pins nicht klar.
Ich kann mir ehrlich gesagt nicht ganz vorstellen, dass das wirklich so ist. Als wahrscheinlicher halte ich, dass es auch für diesen Fall ein genau definiertes Verhalten gibt. Ansonsten würde das mit dem Widerstand auch nur bedingt etwas nützen, da man ja immer noch für ein paar Nanosekunden einen undefinerten Zustand hätte. Weiß jemand dazu genaueres?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 13:07
Beitrag #15
RE: undefinierter Zustand beim Einschalten
@Thorsten, da empfehle ich dir als Lektüre das Atmel Datenblatt unter der Rubrik 14.2.3 Switching Between Input and Output
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.10.2015, 13:38
Beitrag #16
RE: undefinierter Zustand beim Einschalten
Hi,
ok, ich habe es zwar in 13.2.3 gefunden (http://www.atmel.com/images/doc8161.pdf), aber es wird tatsächlich erklärt. Ich versuche mal, das ganze auf "Arduinisch" zu übersetzen:
Code:
pinMode(pin,INPUT);
pinMode(pin_OUTPUT);
// Jetzt ist der Pin automatisch LOW

pinMode(pin,INPUT_PULLUP);
pinMode(pin,OUTPUT);
// jetzt ist der Pin automatisch HIGH
Insbesondere kann man einen Pin schon bevor man ihn auf OUTPUT schaltet in einen definierten Zustand bringen. Das folgende Coding ist durchaus sinnvoll:
Code:
void setup() {
   digitalWrite(5,HIGH);
   pinMode(5,OUTPUT);
   // jetzt sollte der Pin definiert auf HIGH sein
}
Da das ganz am Anfang passiert ist der Pin vorher in "Input Tri-State", d.h. wie wenn man pinMode(5,INPUT) gemacht hätte. Denselben Effekt hätte das hier:
Code:
void setup() {
   pinMode(5,INPUT_PULLUP);
   pinMode(5,OUTPUT);
   // jetzt sollte der Pin definiert auf HIGH sein
}
Allerdings ist das noch verwirrender und auch ein paar Nanosekunden langsamer.
Jetzt könnte nur noch die kleine Frage aufkommen, was eine externe Beschaltung mit Pull-Up-Widerstand macht, wenn der noch auf INPUT geschaltete Pin nicht mehr im Tri-State ist, sondern selbst im Pullup. Das dürfte für eine externe Schaltung in der Regel nicht von einem "HIGH"-Ausgang zu unterscheiden sein. Der fließende Strom wird zwar etwas größer, aber immer noch im Bereich von weit unter einem Milliampere, so lange man mit dem externen Widerstand im Zig-Kiloohm-Bereich bleibt.
Ach ja: Dazu kommt noch, dass nach einem Reset alle Pins in "INPUT" sind. D.h. als Eingang und hochohmig (Tri-State).

Das bedeutet insgesamt: Wenn es darauf ankommt, dass man an einem Ausgang von Anfang an einen definierten Zustand hat, man folgendermaßen vorgehen sollte.
Fall 1: Man will mit LOW anfangen.
Pull-Down Widerstand mit etwa 220kOhm an den Pin
Im Coding:
Code:
void setup() {
   pinMode(5,OUTPUT);
}
Das reicht aus, da nach einem Reset der Pin hochohmig ist, aber der Port auf LOW. D.h. mit dem pinMode(...OUTPUT) wird der Ausgang sozusagen direkt auf Masse geschaltet.
Fall 2: Man will mit HIGH anfangen.
Pull-Up Widerstand mit etwa 220kOhm an den Pin
Im Coding:
Code:
void setup() {
   digitalWrite(5,HIGH);
   pinMode(5,OUTPUT);
}
Das reicht aus, da nach einem Reset der Pin hochohmig ist, d.h. der externe Pullup-Widerstand zieht. Dann schaltet man den Pin auf HIGH, also intern auf Vcc. Das Umschalten auf OUTPUT ändert daran nichts.

Korrekt?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Schrittmotor ruckelt beim Start und im laufenden Betrieb - Arduino+Motor Shield grt35a 3 276 21.09.2016 06:56
Letzter Beitrag: Bitklopfer
  Pinabstand zwischen DP7 und DP8 stört beim Bau eines Shields TheJukeboxMan 6 613 19.01.2016 19:45
Letzter Beitrag: TheJukeboxMan
  Probleme beim Löten Binatone 18 1.742 14.01.2016 14:12
Letzter Beitrag: alpenpower
  Schieberegister undefinierter Zustand BluCut 7 892 14.10.2015 09:16
Letzter Beitrag: BluCut
  Probleme beim Hochladen auf die Platine kaplopez 1 4.093 03.04.2015 19:00
Letzter Beitrag: kaplopez
  USB-Port-Problem beim Nano Stefan 17 3.520 06.10.2014 20:34
Letzter Beitrag: Bitklopfer
Bug plötzlich Fehler beim Hochladen HaWe 0 1.290 26.09.2014 21:45
Letzter Beitrag: HaWe
  Stromversorgung beim Koppeln 2er I2C Geräte fp.blues2013 3 1.211 14.07.2014 21:08
Letzter Beitrag: fp.blues2013
  Messungenauigkeiten beim DUE DietmarB 2 899 04.05.2014 08:43
Letzter Beitrag: Stefan
  Fehlermeldung beim Hochladen knozi 3 1.198 01.02.2014 22:07
Letzter Beitrag: knozi

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste