-         

Ergebnis 1 bis 6 von 6

Thema: Schulprojekt: Hochregallager

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    23.11.2008
    Beiträge
    32

    Schulprojekt: Hochregallager

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hi,

    hab mal wieder eine Frage die aber nur gering mit Robotik zu tun hat
    Wir sind grad dabei (kleine Gruppe) in der Schule ein 1m x 1m Modell-HRL zu programmieren.

    Funktioniert auch alles soweit allerdings gibts Probleme mit der Sensorik. Irgendwie bekommen wir keine Ergebnisse von 2 Lichtsensoren am Anfang und Ende des Fliesbands (Einlagerung bis zum "Kran").

    Also mal kurz eine Frage da ich auf dem Schlauch stehe:

    damit ich an die Sensoren kommen muss ich dem µC erst sagen zu welchem µC ich will (insgesamt 4 hinter dem µC an dem Motoren, Sensoren etc angschlossen sind.) Das mache ich dann mit:

    Code:
    /* Strobe auf High */
    PORTB |= (1<<PB1);
    /* Adresse auf Datenport */
    PORTA = 4;
    /* Init mit Delay zur Uebernahme */
    PORTA |=(1<<PA0);
    _delay_us(10);
    PORTA &= ~(1<<PA0);
    /* Richtungsregister setzen */
    DDRA = 0x00;
    /* Strobe wieder auf low */
    PORTB &= ~(1<<PB1);
    /* und jetzt die eigentliche Frage */
    if(PINA & 0x01) xyz=128;    //<<< Geht das? ;)
    Funktioniert die Abfrage am Ende so?

    Denke alzu viel kann man mit dem Code nicht anfagen aber das kompl. Programm wäre noch undurchschaubarer da es nicht kommentiert ist

    Danke im Vorraus

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Nürnberg
    Alter
    34
    Beiträge
    51

    Re: Schulprojekt: Hochregallager

    Zitat Zitat von facile
    Code:
    if(PINA & 0x01) xyz=128;    //<<< Geht das? ;)
    Funktioniert die Abfrage am Ende so?
    Hi!
    Also die Abfrage funktioniert, ich weis nur nicht ob das das ist was du programmieren wolltest.

    Wenn am PA0 ein High-Pegel anliegt wird der Variable xyz der Wert 128 zugewiesen.
    Soll das denn auch passieren?
    Falls immer nur ein High-Pegel gemessen wird: Sind die Pull-ups aktiv?

    Gruß

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246

    Re: Schulprojekt: Hochregallager

    Zitat Zitat von error41
    Falls immer nur ein High-Pegel gemessen wird: Sind die Pull-ups aktiv?
    Code:
    PORTA &= ~(1<<PA0);
    Dadurch sollte der entsprechende Pull-Up nicht gesetzt sein, wenn das DDR auf Input steht.

    Ist denn auch gewährleistet, dass direkt nachdem Strobe auf Low gesetzt wird, am PinA der gewünschte Wert anliegt?

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    23.11.2008
    Beiträge
    32
    Also am Fliesband sind jeweils hinten und vorne 2 Lichtschranken + Reflektoren. Stellt sich natuerlich die Frage ob die wenn nichts den Messbereich durchquert High oder Low sind. Testen kann ich es leider im Moment nicht. Aber ihr wisst sowas ja

    Also ich will überprüfen ob ein Gegenstand in diesem Fall eine Mini Palette + "Karton" die Lichtschranke durchquert. Dann soll diese erst einmal stoppen und einen Richtungswechsel vornehmen. Daher auch die beiden Werte 128 und 64. Wenn die Platte wieder am anderen Ende ankommt eben das gleiche Spiel nur andersrum ..

    Ich muss sagen die Frage ist mir schon fast peinlich aber nach 3h probieren hab ich es aufgegeben da egal was ich versucht habe alles gescheitert ist b.z.w sogar Dinge hervorgebracht hat die wirklich unbeabsichtigt waren (z.B hat sich der Taktmotor der z achse (einlagern) bewegt, obwohl ich diesem garkeinen Takt gegeben habe.)

    Also richte ich mich in voller Hoffnung an euch

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Nürnberg
    Alter
    34
    Beiträge
    51
    Zitat Zitat von facile
    Also am Fliesband sind jeweils hinten und vorne 2 Lichtschranken + Reflektoren. Stellt sich natuerlich die Frage ob die wenn nichts den Messbereich durchquert High oder Low sind. Testen kann ich es leider im Moment nicht.
    Hi!
    Habt ihr in der Schule kein Multimeter um mal zu checken ob die Lichtschranken auch das machen was sie sollen?
    Also ob sie auf eine Unterbrechung des Lichtstrahls reagieren, ob überhaupt ein Signal herauskommt, und ob der High-Pegel (Ich tippe mal auf 5V?) stimmt.

    Haben die Lichtschranken seperate Massen, und wenn ja sind die miteinander verbunden? (Ohne Massepotential kann der ATmega ja nichts messen)

    Habt ihr die Eingänge des Atmega ggf. mal auf High oder Low gesetzt ob dieser diese auch misst? (Also ohne die Lichtschranke)

    Welchen Atmega verwendet ihr? Hat dieser am Port A zufällig analoge Eingänge? Wenn ja dann müsst ihr diese umstellen um sie als digitale Ein-/Ausgänge nutzen zu können.

    Ich hoffe mal einer dieser Denkanstöße hilft euch weiter...
    Viel Erfolg!

    Gruß

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.11.2008
    Beiträge
    32
    Super danke für die vielen Tipps werde es am Montag mal durchprüfen gebe dann nochmal ein Statusbericht

Berechtigungen

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