2 Arduino mini parallel am I2C-Bus?

comicflyer

Ich mach' alles kaputt...
#1
Als Elektronik-Dummi hab ich mal wieder ne Frage:

Funzen 2 Arduino pro mini parallel am I2C-Bus?

Hintergrund:
MWC Hexa mit Cam-Stabilisierung.
Da ja laut Alex beim Hexa alle Timer belegt sind und deswegen die A0/A1 Ausgänge für die Camstab nicht genutzt werden können, rät er dazu, entweder 2 Bords einzubauen oder auf Arduino Mega zu wechseln.

Wenn 2 Arduinos parallel laufen könnten, bräuchte man ja nur einmal die Sensoren WMP+BMA020.

CU Eddy
 

sysrun

Erfahrener Benutzer
#2
comicflyer hat gesagt.:
Funzen 2 Arduino pro mini parallel am I2C-Bus?
Nach meinem aktuellen Wissen :D dürfte das nicht funktionieren da es auf dem i2c-Bus nur einen Master (in dem Fall einen Arduino) geben darf.

Du müsstes den zweiten Arduino als Slave an den Bus koppeln. Dein primärer Arduino würde dann die Sensoren auslesen und dem zweiten Arduino die Daten senden.

Ohne Codebasteleien wirst du auf jeden Fall nicht weiterkommen.
 

gfunk

Erfahrener Benutzer
#3
steuer den arduino mit summensignal an, dann hast du genug kanäle frei.
solltest du keinen summensignal tauglichen empfänger haben, nimm den zweiten arduino und verwende ihn als summkonverter:

//Reads PPM signals from 6 channels of an RC reciever, translates the values to
//PWM and prints the values to serial port.
//Works with Spectrum DX7 (haven't tested anything else)

//Create variables for 8 channels
int RXCH[6];
volatile int RXSG[6];
int RXOK[6];
int PWMSG[6];

void setup() {

//Start communication to serial port
Serial.begin(115200);

//Assign PPM input pins. The receiver output pins are conected as below to non-PWM Digital connectors:
RXCH[1] = 4; //Throttle
RXCH[2] = 6; //Aile / Yaw
RXCH[3] = 5; //Elev. / Pitch
RXCH[4] = 2; //Rudd. / Roll
RXCH[5] = 7; //Gear
RXCH[6] = 8; //Aux / Flt Mode

for (int i = 1; i < 7; i++){
pinMode(RXCH, INPUT);
}

}

void loop() {

// Read RX values
for (int i = 1; i < 7; i++){ //for each of the 6 channels:
RXSG = pulseIn(RXCH, HIGH, 20000); //read the receiver signal
if (RXSG == 0) {RXSG = RXOK;} else {RXOK = RXSG;} //if the signal is good then use it, else use the previous signal
PWMSG = map(RXSG, 1000, 2000, 0, 511); //substitute the high values to a value between 0 and 511
constrain (PWMSG, 0, 2000); //make sure that the value stays within the disired boundries

// Print RX values
//Serial.print(" || Ch: ");
// Serial.print(i);
Serial.print(" / PWMSG: ");
Serial.print(PWMSG);
//Serial.print(" / RXSG: ");
//Serial.print(RXSG);
delay(20);
}
Serial.println();
}


edit: hoffentlich hab ich dich jetzt richtig verstanden...
was meinst du mit timern?
 

comicflyer

Ich mach' alles kaputt...
#4
gfunk006 hat gesagt.:
steuer den arduino mit summensignal an, dann hast du genug kanäle frei.
.
.
.
edit: hoffentlich hab ich dich jetzt richtig verstanden...
was meinst du mit timern?
Andere haben sich da ja mit den Ausgängen auch schon den Kopf zerbrochen:
http://www.multiwii.com/forum/viewtopic.php?f=6&t=32&p=109&hilit=cam#p109

Alex antwortet dazu in Post 4:
It would be nice, but there is an exception for HEX6 or Y6.
No servo can be driven with these setups, because all the timers are taken to drive the 6 motors.


For other 3 or 4 setups, yes there is no more servo limitations.
It should be possible to activate tilt ROLL+PITCH +cam trigger


Summensignal habe ich, das ist nicht das Problem. Sonst könnte ich ja auch keinen Hexa ansteuern. Ich wollte mit möglichst wenig Teilen auch die Cam-Stabilisierung einbauen. Wenn nicht, auch kein Beinbruch. Dann kommt halt ein 2. Bord rein...

Ich sollte mal dazusagen, daß ich hier grad noch mit der 1.7 Soft rumspiele :D

Wobei ich mich allerdings frage, wo denn die Timer für einen Okto in der 1.8 herkommen??
ALL: 3 octo configs are now supported on mega boards: OCTOX8 (dual coax quadX), OCTOFLAT+, OCTOFLATX
motor order: PIN 3,5,6,2,7,8,9,10
OCTOX8:
REAR_R , FRONT_R , REAR_L , FRONT_L , UNDER_REAR_R , UNDER_FRONT_R , UNDER_REAR_L , UNDER_FRONT_L
[Fr. Edith]
Ja, habs grad gesehen: supported on mega boards

Achja, Funky: Wo liegt denn bei dem Ardu als SumKonv dann der Ausgang??

CU Eddy
 
FPV1

Banggood

Oben Unten