inka
02.02.2017, 12:09
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...
//#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();
}
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...
//#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();
}