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
  Servo über Temperatur steuern querkopf71 3 83 07.12.2016 19:21
Letzter Beitrag: hotsystems
  Kommunikation über das WiFi-Shield Flap 3 235 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Menü über Bluetooth Eingabe abwarten anwo 4 505 18.10.2016 08:59
Letzter Beitrag: Lolliball
  Daten über USB verarbeiten Felix91 10 331 12.10.2016 13:00
Letzter Beitrag: Tommy56
  Code mit Verifikation über Keypad & LCD machnetz 5 216 10.10.2016 15:01
Letzter Beitrag: torsten_156
  Arduino Steuern über eigne Homepage b3ta 8 406 16.08.2016 11:07
Letzter Beitrag: Pit
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 466 22.07.2016 18:06
Letzter Beitrag: phischmi
  Steuern von 4 Servo mittels eines Taster und eines Potis Jackie09 17 766 16.07.2016 11:43
Letzter Beitrag: Binatone
  DUE-MEGA über I2C Verbinden HTO 0 223 22.05.2016 10:16
Letzter Beitrag: HTO
  Serial Monitor Eingabe über Code Maxi290997 4 523 12.05.2016 18:57
Letzter Beitrag: SkobyMobil

Gehe zu:


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