- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: problem mit digitalen pins 8-13

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180

    problem mit digitalen pins 8-13

    Anzeige

    Praxistest und DIY Projekte
    hallo allerseits,

    ich habe eine frage bezüglich der o.g. pins.

    Verwendet wird ein Arduino mega 2560 mit dem sainsmart motorshield V2, ein IR empfänder war mit seiner datenleitung am pin 11 angeschlossen. Änderungen zwingen mich dazu den pin 11 anderweitig zu verwenden, die pins 9 und 10 sind für die Servos (ich verwende zwar keine, aber die pins sind trotzdem blockiert) reserviert, 12 ist von mir ebenfalls belegt...

    Beim versuch den kontakt 8 zu benutzen wurden vom IR empfänger keine signale an den arduino weitergegeben.
    1) ist pin8 auch durch den motorshield belegt?
    2) stört es irgendwie wenn ich den pin13 nutze? Immerhin hängt da ja die berühmte "LED pin13" dran...

    der code: nicht vollständig, die funktion "tasten_abfrage();" fehlt, die ist aber nebensächlich, weil der code ja mit pin11 und 13 läuft, nur mit 8 eben nicht...


    Code:
    //#include <NewPing.h>
    #include <Servo.h>
    #include <LCD.h>
    #include <LiquidCrystal_I2C.h>
    #include <Wire.h>
    #include <Adafruit_MotorShield.h>
    #include <IRremoteInt.h>
    //#include <ir_Lego_PF_BitStreamEncoder.h>
    #include <IRremote.h>
    //#include "utility/Adafruit_MS_PWMServoDriver.h"
    /*
    #define TRIGGER_PIN  6
    #define ECHO_PIN     7
    #define MAX_DISTANCE 100 //400
    
    
    NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
    */
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
    /*
    uint16_t distanz;
    uint16_t uS;
    */
    uint8_t RECV_PIN =13;//IR receiver pin
    uint8_t taste;
    
    uint8_t servo_pos_1;
    uint8_t servo_pos_2;
    uint8_t servo_pos_3;
    uint8_t m_speed;
    
    
    Servo myservo_1;
    
    boolean start_ping;
    boolean hindernis;
    
    IRrecv irrecv(RECV_PIN);
    
    decode_results results;
    
    Adafruit_MotorShield AFMS = Adafruit_MotorShield();
    
    Adafruit_DCMotor *motor_hl = AFMS.getMotor(1);
    Adafruit_DCMotor *motor_hr = AFMS.getMotor(2);
    Adafruit_DCMotor *motor_vr = AFMS.getMotor(3);
    Adafruit_DCMotor *motor_vl = AFMS.getMotor(4);
    
    uint8_t schritt, i;
    
    unsigned long dauer_servo, dauer_fahrt, currentMillis, previousMillis;
    
    
    void setup()
    {
      servo_pos_1 = 40;
      servo_pos_2 = 80;
      servo_pos_3 = 140;
      m_speed = 50;
    
      myservo_1.attach(10);
    
      Serial.begin(115200);
      Serial1.begin(115200);
    
      Serial.print("remote_switch_ohne_lib_kurzimpuls_dauer_bewegung");
      Serial.println("\n");
    
      Serial1.print("remote_switch_ohne_lib_kurzimpuls_dauer_bewegung");
      Serial1.println("\n");
    
      lcd.begin(16, 2);
    
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.setBacklight(HIGH);
      lcd.print("remote_switch");
      lcd.setCursor(0, 1);
      lcd.print(" ");
      delay(2000);
      lcd.clear();
      lcd.setBacklight(LOW);
    
      irrecv.enableIRIn(); // Start the receiver
      AFMS.begin();// start motorshield
    }
    
    
    void loop()
    {
      if (irrecv.decode(&results))
      {
        taste = results.value;
        irrecv.resume(); // Receive the next value
      }
      tasten_abfrage();
    }
    gruß inka

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    schade, dass da niemanden was eingefallen ist, ich nehme meine annahme jetzt einfach mal als gegeben hin. Bei dem LED-pin dachte ich mir schon, dass es nichts ausmacht, beim pin8 muss ich noch suchen. Dass es mit dem pin13 funktioniert, kann man auch in den beiden kurzen videos sehen:

    2017 02 03 cruise avoid collision: https://youtu.be/VYyODaNvFTM


    2017 02 03 fernbedienung: https://youtu.be/WKTGpe4jd7k
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    ich müsste mich jetzt erstmal mit dem arduino code und den libraries für dein board auseinander setzen um dir eine konkrete antwort geben zu können.

    manche pins sind vorgegeben weil der controller nur auf diesen pins die passende peripherie hat.

    allgemein wie die IO Pins auf den controller gemappt sind müsste man entweder der library oder der board dokumentaiton/schematic entlocken
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    danke, nicht nötig, es hätte ja sein können, dass jemand schon mal mit dem problem konfrontiert worden ist. Und am code liegts sicher nicht, vermutlich ist es wirklich das shield...
    gruß inka

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.12.2010
    Ort
    NRW
    Beiträge
    223
    Hi,

    wir hatten da so ein ähnliches Thema mal...

    https://www.roboternetz.de/community...ertes-Fahrzeug

    und da lag es an den vordefinierten Pins des Shields

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    bei dem V1 motorshield kannte ich das, allerdings schreibt sainsmart in der beschreibung für V2:

    -------------------------------------------------------------------------------
    What pins are/are not used on the motor shield?

    The shield uses the SDA and SCL I2C pins to control DC and Stepper motors. On the Arduino UNO these are also known as A4 and A5. On the Mega these are also known as Digital 20 and 21. On the Leonardo these are also known as digital 2 and 3. Do not use those pins on those Arduinos with this shield with anything other than an I2C sensor/driver.

    Since the shield uses I2C to communicate, you can connect any other I2C sensor or driver to the SDA/SCL pins as long as they do not use address 0x60 (the default address of the shield)

    If you want to use the servo connections, they are on pins #9 and #10. If you do not use the connector then those pins are simply not used.

    You can use any other pins for any other use
    -----------------------------------------------------------------------

    keine spur von pin8...
    gruß inka

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.198
    Nimm mal die Servo-Geschichte raus, testweise....
    Ich erinnere mich da dunkel, dass da irgendwas mit den verwendeten Timern war.
    Das müsste irgendwo in den Tiefen der doku zur Servo-Bibliothek stehn (wenn es denn drin steht).
    Auch die NewPing hatte solche Tücken, glaub ich.

    Was mir so nebenbei aufgefallen ist: du hast den Anschluss des IR-Empfängers _nicht_ als Eingang deklariert....
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Zitat Zitat von Rabenauge Beitrag anzeigen
    Nimm mal die Servo-Geschichte raus, testweise....
    Ich erinnere mich da dunkel, dass da irgendwas mit den verwendeten Timern war.
    Das müsste irgendwo in den Tiefen der doku zur Servo-Bibliothek stehn (wenn es denn drin steht).
    Auch die NewPing hatte solche Tücken, glaub ich.
    momentan fehlt mir die zeit dazu, und ohne Servos komme ich ja auch nicht weiter, selbst wenn es die ursache sein sollte...
    Und mit dem pin13 geht es ja...

    Zitat Zitat von Rabenauge Beitrag anzeigen
    Was mir so nebenbei aufgefallen ist: du hast den Anschluss des IR-Empfängers _nicht_ als Eingang deklariert....
    , habe ich nicht so sehr drauf geachtet - es funktionierte ja , aber das mache ich noch, danke...
    gruß inka

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    55
    Beiträge
    2.198
    Lies dich mal ins Thema Arduino, Interrupts und Timer ein.
    Da war irgendwas mit der Servo-Lib, die einen Timer (oder nen Interrupt *grübel) nutzt, der schon auch mal anderswo gebraucht wird.

    Die Servo-Bibliothek an sich benötigt man nich unbedingt, das bissel kann man eigentlich auch selber machen- wird erst bei etlichen Servos tricky.
    Sie ist schön bequem, aber hat eben einige Tücken (z.B. schränkt sie beim UNO die PWM-Funktionalität ein, die man aber _eigentlich_ auch selber machen kann).

    Insgesamt sind die Arduino-Bibliotheken durchaus ne feine Sache, aber wenn man mehrere zusammen benutzen will, merkt man beizeiten, dass da längst nich alles Gold ist, was glänzt. Und keiner weiss das so richtig...
    Irgendwie wirst du das Problem eingrenzen müssen, und da hilft nur, eins nach dem anderen mal zu deaktivieren, und zu gucken, wanns soweit läuft.
    Grüssle, Sly
    ..dem Inschenör ist nix zu schwör..

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    diese beschreibung der used/unused pins ist mir noch untergekommen...
    Code:
    • 2 connections for 5V 'hobby' Servos connected to the Arduino's high-resolution dedicated timer - no jitter!
    • 4 H-Bridges: TB6612 chipset provides 1.2A per bridge (3A for brief 20ms peaks) with thermal shutdown protection,
    • internal kickback protection diodes. Can run motors on 4.5VDC to 13.5VDC.
    • Up to 4 bi-directional DC motors with individual 8-bit speed selection (so, about 0.5% resolution)
    • Up to 2 Stepper motors (unipolar or bipolar) with single coil, double coil, interleaved or micro-stepping.
    • Motors automatically disabled on power-up
    • Big terminal block connectors to easily hook up wires (18-26AWG) and power
    • Arduino reset button brought up top
    • Polarity protected 2-pin terminal block and jumper to connect external power, for separate logic/motor supplies
    • Tested compatible with Arduino UNO, Leonardo, ADK/Mega R3, Diecimila & Duemilanove.
    • Works with Due with 3.3v logic jumper. Works with Mega/ADK R2 and earlier with 2 wire jumpers.
    • Download the easy-to-use Arduino software library, check out the examples and you're ready to go!
    • 5v or 3.3v compatible logic levels - jumper configurable.
    All 6 analog input pins are available. They can also be used as digitalpins (pins #14 thru 19) Digitalpin 2, and 13 are not used. The following pins are in use only if the DC/Stepper noted is inuse: Digitalpin 11: DC Motor #1 / Stepper #1 (activation/speed control) Digitalpin 3: DC Motor #2 / Stepper #1 (activation/speed control) Digitalpin 5: DC Motor #3 / Stepper #2 (activation/speed control) Digitalpin 6: DC Motor #4 / Stepper #2 (activation/speed control) The following pins are in use if any DC/steppers are used Digitalpin 4, 7, 8 and 12 are used to drive the DC/Stepper motors via the74HC595 serial-to-parallel latch The following pins are used only if that particular servo is inuse: Digitalspin 9: Servo #1 control Digital pin 10: Servo #2 control
    gruß inka

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 19.06.2018, 08:39
  2. Problem mit Pullups.Alle Pins reagieren anders
    Von mwoidt im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 16.06.2008, 21:47
  3. SMD und normale Bauteile - Problem mit Pins (Eagle)
    Von daniel.weber im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 1
    Letzter Beitrag: 25.04.2008, 20:35
  4. problem mit int0 und restlichen pins von portd?
    Von mrg im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 23.01.2007, 21:05
  5. pins auf dem paralell port auf high schalten. Problem!
    Von guigis im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 0
    Letzter Beitrag: 28.01.2005, 20:42

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad