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
Über Pin43 den Pin42 steuern, ist das so richtig?
01.02.2016, 10:27
Beitrag #1
Über Pin43 den Pin42 steuern, ist das so richtig?
Hallo, guten Tag.
Ich möchte bitte über Pin43 den Pin42 steuern und dann abfragen und habe Pin42 mit Pin43 verbunden über eine Drahtbrücke.

Ist das so richtig um den Eingangspin inPin zu schützen?

Danke.
Gruss

Code:
int ledpin = 13;
int inpin = 42;  
int outpin=43;
int val = 0;    

void setup()
{
  pinMode(ledpin, OUTPUT);      
  pinMode(inpin, INPUT_PULLUP);    
  pinMode(outpin, OUTPUT);
  }

void loop()
{
  digitalWrite(outpin,HIGH);
  val = digitalRead(inpin);  
  digitalWrite(ledpin,val);  
  delay(500);
  
  digitalWrite(outpin,LOW);
  val = digitalRead(inpin);  
  digitalWrite(ledpin,val);    
  delay(500);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2016, 12:19
Beitrag #2
RE: Über Pin43 den Pin42 steuern, ist das so richtig?
(01.02.2016 10:27)arduinofan schrieb:  Hallo, guten Tag.
Ich möchte bitte über Pin43 den Pin42 steuern und dann abfragen und habe Pin42 mit Pin43 verbunden über eine Drahtbrücke.

Ist das so richtig um den Eingangspin inPin zu schützen?

Danke.
Gruss
...

Hallo,

aus:
Code:
pinMode(inpin, INPUT_PULLUP);
könntest du:
Code:
pinMode(inpin, INPUT);
machen weil PULLUP in dem Fall nicht nötig ist.

Aber:
Ich verstehe den Sinn der Aktion nicht. Vor wem oder vor was willst du so den Eingangspin schützen?

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2016, 14:53 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2016 14:53 von arduinofan.)
Beitrag #3
RE: Über Pin43 den Pin42 steuern, ist das so richtig?
Weil ich den Pin43 mit Pin42 verbinde und 43 dann auf High/Low setze.

Also da nicht nötig?

Danke.
Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2016, 16:11
Beitrag #4
RE: Über Pin43 den Pin42 steuern, ist das so richtig?
(01.02.2016 14:53)arduinofan schrieb:  Weil ich den Pin43 mit Pin42 verbinde und 43 dann auf High/Low setze.

Also da nicht nötig?

Danke.
Gruss

Sorry, aber ich verstehe nicht was du erreichen willst. HuhHuhHuh
Warum willst du an Pin 43 ein Signal ausgeben um es an Pin 42 einzulesen damit du den Zustand auf Pin 13 anzeigen kannst.
Das geht doch auch direkt ohne den Umweg über Ausgabe --> Einlesen --> Anzeige.

Wieso, warum, weshalb, wogegen willst du den inPin (42) schützen. Huh

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2016, 17:11 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2016 17:13 von arduinofan.)
Beitrag #5
RE: Über Pin43 den Pin42 steuern, ist das so richtig?
Ich kann sonst mein RF24 auf dem Roboter nicht zum Empfangen bewegen und zum senden. Sowie dem RF24 auf meinem Breadboard.

Auf beiden ist dieses Sende/Empfangs-Programm drauf.
Die Demo dafür bezieht sich immer auf das Starten von der seriellen Schnittstelle aus mit Eingabe von "T" oder "R". Und auf dem Roboter habe ich keine Tastatur. Darum schliesse ich kurz auf den Roboter den PIN44 mit PIN43 für "R" zusammen mit einem Taster und den PIN44 mit PIN41 auf dem Breadboard mit einem Taster und beide haben dann eine Verbindung zum Datenaustausch hergestellt.

Wenn du dafür eine bessere Lösung hast für die beiden RF24, die einfacher ist, wäre es wunderbar.

Dieses Programm kommt auf beide MEGA2560 :
Code:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

#define CE_PIN   53
#define CSN_PIN  48

int inpin = 43;  
int inpin1 =41;
int outpin=44;
int test_tr = 0;    

byte inbyte;
byte daten1[1];
byte daten2[1];

RF24 radio(CE_PIN, CSN_PIN);

const uint64_t pipes[2] = {0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL};
const char* role_friendly_name[] = { "invalid", "Ping out", "Pong back"};
typedef enum { role_ping_out = 1, role_pong_back } role_e;

role_e role = role_pong_back;

void setup(void)
{
pinMode(inpin, INPUT_PULLUP);  
pinMode(inpin1, INPUT_PULLUP);  
pinMode(outpin, OUTPUT);
digitalWrite(outpin,LOW);

Serial.begin(9600);
delay(500);

radio.begin();
radio.setRetries(15,15);

radio.openReadingPipe(1,pipes[1]);
radio.startListening();
radio.printDetails();
}

void loop(void)
{
  if (role == role_ping_out)
  {
    radio.stopListening();
    radio.write( daten1, sizeof(daten1));
    radio.startListening();

    unsigned long started_waiting_at = millis();
    bool timeout = false;
    
    while ( ! radio.available() && ! timeout )
    if (millis() - started_waiting_at > 200 )
    timeout = true;

    if ( timeout )
    {
      goto weiter;
    }
    else
    {
      radio.read( daten1, sizeof(daten1) );
      Serial.print("daten1 = ");
      Serial.println(daten1[0]);
      delay(10);
    }
    
    weiter:
    delay(100);
  }

  if ( role == role_pong_back )
  {
    if ( radio.available() )
    {
    
      unsigned long got_time;
      bool done = false;
      while (!done)
      {
        done = radio.read( daten2, sizeof(daten2) );
        Serial.print("daten2 = ");
        Serial.println(daten2[0]);
        delay(10);
      }

      radio.stopListening();
    
      inbyte = inbyte+1;
      daten1[0] = inbyte;
      radio.write( daten1, sizeof(daten1));
    
      radio.startListening();
    }
  }

  test_tr = digitalRead(inpin1);  
  if (test_tr==LOW){
    char c = 'T';
  
    role = role_ping_out;
    radio.openWritingPipe(pipes[0]);
    radio.openReadingPipe(1,pipes[1]);    
  }

  test_tr = digitalRead(inpin);  
  if (test_tr==LOW){
    char c = 'R';
  
    role = role_pong_back;
    radio.openWritingPipe(pipes[1]);
    radio.openReadingPipe(1,pipes[0]);  
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2016, 21:01
Beitrag #6
RE: Über Pin43 den Pin42 steuern, ist das so richtig?
Ich denke das Thema ist gegessen.
Die Lösung gibt es hier.

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  RGB Animation über Serial Steuern Medolino 5 261 20.02.2017 16:14
Letzter Beitrag: Medolino
  Arduino-UNO LED über Taster digital zum leuchten zu bringen IvKriz 9 426 18.02.2017 08:33
Letzter Beitrag: renid55
  Servo-Ansteuerung über einen Push-Button Aubergine83 1 232 16.02.2017 19:49
Letzter Beitrag: georg01
  LED langsam über 15 Minuten dimmen Kriskind 14 655 09.02.2017 13:26
Letzter Beitrag: Kriskind
  Mehrere Servos gleichzeitig steuern (Hexapod) scritch 7 456 25.01.2017 08:18
Letzter Beitrag: scritch
  Display über I2-Bus betreiben mfri 22 935 23.01.2017 11:06
Letzter Beitrag: renid55
  Messdatenausgabe auf Webserver über NanoESP RivaDynamite 10 745 10.01.2017 15:49
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 760 09.01.2017 20:12
Letzter Beitrag: Tommy56
  LED Dimmen über Bewegungsmelder Jens040774 8 387 05.01.2017 19:07
Letzter Beitrag: renid55
  Variable über EEPROM in ein Script einbinden... Badger1875 5 672 01.01.2017 15:08
Letzter Beitrag: Tommy56

Gehe zu:


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