- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 23

Thema: Eingang abfrage 5V

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Ich kenne das Board nicht und weis jetzt auch nicht wie die Taster da drauf verschalten sind falls überhaupt schon welche drauf sind - oder wie du sie selbst verschalten hast falls du die selber da dran gebaut hast.

    Aber ich würde mal tippen, dass du den Pulldown-Widerstand nach GND vergessen hast

    (Ein offener Eingang wird als high erkannt, weil da ca. 1.6V von der Innenbeschaltung zurücksprotzen)

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    ja nach den Grundkenntnisse heißt es ja das man

    1) DDRB = (1<<PB0); Eingang
    2) PORTB = (1<<PB0); Pulldown widerstand aktivieren

    das was ich dann versucht hatte war auch:

    PINB = (1<<PB0); um den Eingang auf 0 zu setzen

    also ich habe die LED selbst dran gemacht und den Taster ersetze ich damit das ich den Kabel auf 5V kontaktiere
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    DDRB = (1<<PB0); Eingang
    Für mich heißt dass, dass der ganze Port (also PB0 bis PB7) Eingang ist, bis auf den PB0, der dann Ausgang ist.

    PORTB = (1<<PB0); Pulldown widerstand aktivieren
    • AVRs haben doch nur PullUps?! oO
    • Was du da machst ist den Ausgang PB0 auf 5V setzen


    das was ich dann versucht hatte war auch:
    PINB = (1<<PB0); um den Eingang auf 0 zu setzen
    • Wenn ein Pin als Eingang gesetzt ist kann man mit dem Register "PINB" die PullUps aktivieren und deaktivieren (1 = Pullups aktiv, 0 = vollkommen offener Eingang)
    • Du kannst keine Eingänge setzen, nur Ausgänge
    • Um Ausgänge auf 0V / 5V zu setzen wird das PORTB-Register verwendet


    Mir scheint du hast da bisschen was durcheinander gebracht. Könnte aber auch an der Uhrzeit liegen (Was du da schreibst erinnert mich an die PICs, dort kommt so Schwachsinn (meine Meinung), dass 1 ein Eingang ist und das man PullDowns reinbaut)

    Viele Grüße

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    Ja kann die Uhrzeit auch gut sein werd glaub ich auch jetzt Richtung Bett gehen.

    Hab viel durcheinander gebracht aber wie im Code:

    Hab ich DDRB auf null gesetzt.

    Aber wie frage ich den Pin denn ab, nach 5V.

    Ich habe ein Kapazitäten Schalter und wenn er auf high ist, gibt er 5V ab.
    Und ich möchte gerne das mit den AVR diese 5V abgreifen, ich möchte aber nicht auf etwas warten,
    wo man da nichts mehr machen kann.

    Wie krieg ich das realisiert wenn ein Eingang automatisch auf 5 V liegt?
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    D.h. das hier ist deine Schaltung?
    Code:
    _________________
          AVR        |
                     |
                PB0--+--------- Kapazitiver Schalter, liefert 0V oder 5V
                     |                
                     |       ___    LED
                PD4--+------|___|---|>|---+
                     |                    |
                     |                   ---GND
    _________________|
    Dann sollte das hier gehen:
    Code:
    #include <avr/io.h>
    #include <util/delay.h>
    int main(void)
    {          
        DDRD = 0b00010000; // Pin 4 des PortD auf Ausgang     
        DDRB = 0b00000000; // Alle 8 Pins des PortB auf Eingang          
        while(1)     
        {         
            if(PINB & 0b00000001) // Wenn der Schalter 5V liefert...             
            {                 
                PORTD |= 0b00010000; // ...die LED anschalten...             
            }         
            else                         // ...ansonsten...             
            {                 
                PORTD &= 0b11101111; // ...die LED ausschalten             
            }                         
        }
    }

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.01.2008
    Ort
    Krefeld
    Beiträge
    272
    sorry hab schon alles zusammen gepackt und kann das jetzt nicht ausprobieren,
    aber ist das nicht genau das, was ich im Code stehen hab.

    Das Problem ist ja das der Eingang schon 5 V ausgibt und die LED die ganze zeit an ist,
    ich glaub nicht das ich dann in PB0 noch 5 V einspeisen kann?
    Ich kam, sah und alles funktionierte **** doch dann klingelte mein Wecker!!!

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Das Problem ist ja das der Eingang schon 5 V ausgibt
    Ein Eingang kann keine Spannung ausgeben, das kann nur ein Ausgang. Das einzige was ein Eingang machen kann ist, ein sehr sehr schwaches 5V-Signal anlegen, damit, wenn nichts an den Eingang angeschlossen ist, der Eingang einen definierten Pegel hat. Sonst wirkt er wie eine Antenne. Die schwachen 5V die der Eingang mit den Pullups bereitstellen kann werden aber z.b. von einem Taster der den Eingang nach GND schaltet einfach "geplättet", d.h. der Taster ist viel stärker als der Pullup-Widerstand.

    Der Code den ich dir gegeben habe oder auch der von Kampi aktivieren keine Pullups. Abgesehen davon würde das jetzt keinen Einfluss auf deine Schaltung haben. Nimm mal ein Multimeter und miss die Spannung an PB0. Wenn dein Multimeter 5V anzeigt liest der AVR 5V. Wenn dein Multimeter 0V anzeigt liest der AVR 0V, so einfach ist das

    ich glaub nicht das ich dann in PB0 noch 5 V einspeisen kann?
    Die 5V die der Eingang mit Pullups bereitstellen kann sind so dermassen schwach, dass der Schalter das Signal ohne mit der Wimper zu zucken so hinbügeln kann wie er will.

Ähnliche Themen

  1. Pin-Abfrage?
    Von Blackaffe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 25.05.2011, 10:07
  2. Problem bei if-Abfrage
    Von sebwolf im Forum Asuro
    Antworten: 17
    Letzter Beitrag: 06.04.2008, 06:22
  3. IF Abfrage
    Von kalletronic im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 06.06.2007, 06:39
  4. Abfrage!
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 03.07.2006, 13:05
  5. COM-Abfrage
    Von surfer im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 40
    Letzter Beitrag: 15.09.2005, 14:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress