#include <SoftwareSerial.h> //Software Serial Port
#define RxD 10 //Pin 10 uno pour RX relier a TX du hc-06
#define TxD 11 //Pin 11 uno pour TX relier a RX du hc-06 avec pont diviseur 1k et 2k au gnd
SoftwareSerial BT(RxD,TxD);
#define clock_pin 2 // PD2
#define x_data_pin 3 //PORTD PD3
#define y_data_pin 4 // PD4
#define z_data_pin 5 // PD5
#define x_data (PIND & 0b100)>>2
#define y_data (PIND & 0b1000)>>3
#define z_data (PIND & 0b10000)>>4
unsigned long xCoord;
unsigned long yCoord;
unsigned long zCoord;
//**************************************************************************************************************************************************************************************************
void setup(){
pinMode(clock_pin,OUTPUT);
pinMode(x_data_pin,INPUT);
pinMode(y_data_pin,INPUT);
pinMode(z_data_pin,INPUT);
delay(500);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
BT.begin(9600);
delay(500);
Serial.begin(9600); // Initializes serial port
}
//**************************************************************************************************************************************************************************************************
void loop(){
for(int bitOffset = 0; bitOffset<21; bitOffset++)
{
digitalWrite(clock_pin, HIGH);
delayMicroseconds(5);
xCoord |= x_data<<bitOffset;
yCoord |= y_data<<bitOffset;
zCoord |= z_data<<bitOffset;
digitalWrite(clock_pin, LOW);
delayMicroseconds(10);
}
Serial.println(xCoord);
Serial.println(yCoord);
Serial.println(zCoord);
BT.print(F("x"));
BT.print((long)xCoord);
BT.print(F(";"));
BT.print(F("y"));
BT.print((long)yCoord);
BT.print(F(";"));
BT.print(F("Z"));
BT.print((long)zCoord);
BT.print(F(";"));
//delayMicroseconds(50);
delay(10);
}
1K
2K