I'm trying to make a game where i can use one Arduino as a controller (the controller is a potentiometer) and the other Arduino sending the signals to the computer. Im trying to figure out communication with two Arduino's so i would like to use two instead of one although using one would be logical and easier. Ive tried looking into I2C but cant seem to figure it out.
2
-
1Why are you using 2 Arduinos? You could do all of this in just one Arduino. – sa_leinad Dec 7 '16 at 1:55
-
Please also improve the formatting of your question. – sa_leinad Dec 7 '16 at 1:55
Add a comment
|
Start by reading the potentiometer. Add a Wire request service function and that makes the Slave:
#include <Wire.h>
const uint8_t controllerAddress = 8;
const int controllerPin = A0;
volatile int controllerValue = 0;
void setup() {
Wire.begin(controllerAddress);
Wire.onRequest(requestEvent);
}
void loop() {
int value = analogRead(controllerPin);
noInterrupts();
controllerValue = value;
interrupts();
}
void requestEvent() {
Wire.write((const uint8_t*) &controllerValue, sizeof(controllerValue));
}
This is minor update of the Arduino Wire Master Reader tutorial. The sketch for the Master is left as an exercise.
Cheers!
-
I would assign 'A0' to controllerPin instead of '0', to avoid any confusing with digital pins: const int controllerPin = A0; – Jot Apr 6 '17 at 6:57
-