0

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
  • 1
    Why 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
1

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!

2
  • 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
  • Nice catch. I will fix that. – Mikael Patel Apr 6 '17 at 18:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.