- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: ldr am digital-port (gelößt)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    06.10.2009
    Beiträge
    42

    ldr am digital-port (gelößt)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    hi

    da mein analog port leider aus irgendwelchen gründen defekt ist (oder ich bin einfach zu dumm^^) muss nun irgendwie einen ldr an die digital ports anschließen . die frage ist nun wie das geht.ich könnte mir zb vorstellen das iwie mit nem kondnsator zu machen so dass je nach ldr widerstand sich die frequenz des signals am digital pin erhört
    mehr verstehe ich aber nicht von elektronik^^
    hoffentlich könnt ihr mir beim erstellen einer schaltung helfen..

    tobi

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    So leicht geht ein Analoger Eingang nicht kaput. Das ist dann meist der ganze Chip hinüber. Das wird also mehr ein Problem der Programmierung sein.

    Man kann sich an einem digitalen Einganag helfen, wie schon vermutet mit einem Kondesator. der LDR und Konensator Bilden ein RC glied und die Verzögerung hängt dann von LDR (Licht) ab. Die schaltung könnte z.B. ein Kondensator gegen Masse (z.B. 1 nF), und der LDR gegen Vcc. Gemessen wird dann die Zeit von Umschalten von Ausgang Low auf Eingang, bis an Eingang ein High erkannt wird.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    06.10.2009
    Beiträge
    42
    und wo würde ich dann den pin anschließen ?? (in der mitte zwischen ldr u. kondensator?)
    könnte mir vielleicht einer ein code beispiel geben ich hab e das mit dem auswerten noch nicht verstanden

    tobi

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    na dann erzähl uns doch noch etwas mehr sonst wird das nur sinloses gerate
    von was ist der digitalport bzw der analog port von einem computer oder mikrokontroler( von welchem?)
    welche programiersprache
    und dein code mit dem du es probiert hast

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.10.2009
    Beiträge
    120
    I/O-Pin in der Mitte, so wie du geschrieben hast.

    Zur Code: ich kann ein Versuch in Pseudocode machen.
    Am geschicktesten machst du die Zeitmessung mit einem Timer, aber zur Verstaendnis wie folgt:

    Code:
    Pin=Output, Low
    // lass eine Zeit vergehen um den Kondensator zu entladen
    
    Pin=Input
    Counter=0
    while (Pin == Low)
    {
      Counter++
      Delay_us(10)  // 10us ist ein Beispiel, muss ausprobiert werden
    }
    
    // wenn wir hierher kommen, ist der Kondensator aufgeladen worden (Pin=High)
    if (Counter > 100)  // 100 counts ist auch nur ein Beispielswert
      //Dunkel
    else
      //Hell

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    06.10.2009
    Beiträge
    42
    vielen dank wie schon richtig erraten benutzte ich c im avrstudio 4 mit einem atmega 32.
    ich weiß nicht genau was du mit
    und dein code mit dem du es probiert hast
    gemeint hast außer du meinst den code um den analog port auszulesen:

    stammt nicht von mir:
    Code:
    uint16_t readADC(uint8_t channel) {
    	uint8_t i;
    	uint16_t result = 0;
    	
    	// Den ADC aktivieren und Teilungsfaktor auf 64 stellen
    	ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1);
    
    	// Kanal des Multiplexers waehlen
    	// Interne Referenzspannung verwenden (also 2,56 V)
    	ADMUX = channel | (1<<REFS1) | (1<<REFS0);
    	
    	// Den ADC initialisieren und einen sog. Dummyreadout machen
    	ADCSRA |= (1<<ADSC);
    	while(ADCSRA & (1<<ADSC));
    	
    	// Jetzt 3x die analoge Spannung and Kanal channel auslesen
    	// und dann Durchschnittswert ausrechnen.
    	for(i=0; i<3; i++) {
    		// Eine Wandlung
    		ADCSRA |= (1<<ADSC);
    		// Auf Ergebnis warten...
    		while(ADCSRA & (1<<ADSC));
    		
    		result += ADCW;
    	}
    	
    	// ADC wieder deaktivieren
    	ADCSRA &= ~(1<<ADEN);
    	
    	result /= 3;
    	
    	return result;
    }
    tobi

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    wie sah der wert aus der zurück gegeben wurde?
    und wie sah die externe beschaltung aus?
    ja ich wollte mal den code sehen, weil da schon die meisten fehler auftauchen und der rest der fehler bei der beschaltung. Und das unwahrscheinlichste ist, dass du den gesammten adc teil kaputt gemacht hast

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    06.10.2009
    Beiträge
    42
    also als ergebni bekam ich konstant 1022
    bei einer beschaltung
    https://www.roboternetz.de/phpBB2/files/adc.pdf
    allerdings ohne den kondensator
    zwischen durch bekam ich auch mal bei shr hellem licht 571
    und zwischen drin 572 bei dunkelm raus opder so ähnlich
    ich hatte dazu auch schon ein thema aufgemacht:
    https://www.roboternetz.de/phpBB2/viewtopic.php?t=52801

    tobi

  9. #9
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.427
    ok das klingt aber stark nach einem nicht kaputten adc
    hast du ein poti? wenn ja stell mit dem mal langsam alle möglichen spannungen ein und seh dir die werte an und die ref spannung nimmst du besser 5V.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    06.10.2009
    Beiträge
    42
    von 5 auf oder abwärts?

    EDIT: es geht grad schlecht das auszuprobieren (https://www.roboternetz.de/phpBB2/viewtopic.php?t=54214) aber ansonsten erstam danke!

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

12V Akku bauen