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
  LED langsam über 15 Minuten dimmen Kriskind 9 103 Heute 21:10
Letzter Beitrag: Tommy56
  Mehrere Servos gleichzeitig steuern (Hexapod) scritch 0 22 Heute 10:05
Letzter Beitrag: scritch
  Messdatenausgabe auf Webserver über NanoESP RivaDynamite 10 274 10.01.2017 15:49
Letzter Beitrag: renid55
  Über drei Taster zwei externe Timer steuern Sidamo 23 295 09.01.2017 20:12
Letzter Beitrag: Tommy56
  LED Dimmen über Bewegungsmelder Jens040774 8 147 05.01.2017 19:07
Letzter Beitrag: renid55
  Variable über EEPROM in ein Script einbinden... Badger1875 5 472 01.01.2017 15:08
Letzter Beitrag: Tommy56
  Servo über Temperatur steuern querkopf71 3 206 07.12.2016 19:21
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 3 288 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Menü über Bluetooth Eingabe abwarten anwo 4 526 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Daten über USB verarbeiten Felix91 10 394 12.10.2016 13:00
Letzter Beitrag: Tommy56

Gehe zu:


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