diff options
author | Akshay Chipkar | 2019-05-10 09:47:11 +0530 |
---|---|---|
committer | GitHub | 2019-05-10 09:47:11 +0530 |
commit | d613a4e0e6279c00bcb44312068ee09574b1d656 (patch) | |
tree | 92481d6eef3a592171112787050223ec3ed069c4 /Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c | |
parent | 4ca104e399f96e59de660e082d4e1a0013e44307 (diff) | |
parent | 4a1414b2f3e4f98244ac624b14604458e850e6cd (diff) | |
download | OpenPLC-d613a4e0e6279c00bcb44312068ee09574b1d656.tar.gz OpenPLC-d613a4e0e6279c00bcb44312068ee09574b1d656.tar.bz2 OpenPLC-d613a4e0e6279c00bcb44312068ee09574b1d656.zip |
Merge pull request #11 from VishnuEaswaran/master
rectified the mistake in the motor gerber file
Diffstat (limited to 'Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c')
-rw-r--r-- | Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c b/Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c new file mode 100644 index 0000000..fae88f6 --- /dev/null +++ b/Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c @@ -0,0 +1,65 @@ + +#define SELPIN 10 //Selection Pin +#define DATAOUT 11//MOSI +#define DATAIN 12//MISO +#define SPICLOCK 13//Clock +int readvalue; + +void setup(){ +//set pin modes +pinMode(SELPIN, OUTPUT); +pinMode(DATAOUT, OUTPUT); +pinMode(DATAIN, INPUT); +pinMode(SPICLOCK, OUTPUT); +//disable device to start with +digitalWrite(SELPIN,HIGH); +digitalWrite(DATAOUT,LOW); +digitalWrite(SPICLOCK,LOW); + +Serial.begin(9600); +} + +int read_adc(int channel){ + int adcvalue = 0; + byte commandbits = B11000000; //command bits - start, mode, chn (3), dont care (3) + + //allow channel selection + commandbits|=((channel-1)<<3); + + digitalWrite(ADCSEL,LOW); //Select adc + // setup bits to be written + for (int i=7; i>=3; i--){ + digitalWrite(DATAOUT,commandbits&1<<i); + //cycle clock + digitalWrite(SPICLOCK,HIGH); + digitalWrite(SPICLOCK,LOW); + } + + digitalWrite(SPICLOCK,HIGH); //ignores 2 null bits + digitalWrite(SPICLOCK,LOW); + digitalWrite(SPICLOCK,HIGH); + digitalWrite(SPICLOCK,LOW); + + //read bits from adc + for (int i=11; i>=0; i--){ + adcvalue+=digitalRead(DATAIN)<<i; + //cycle clock + digitalWrite(SPICLOCK,HIGH); + digitalWrite(SPICLOCK,LOW); + } + digitalWrite(ADCSEL, HIGH); //turn off device + return adcvalue; +} + +digitalWrite(SELPIN, HIGH); //turn off device +return adcvalue; +} + +void loop() { +readvalue = read_adc(1); +Serial.println(readvalue,DEC); +readvalue = read_adc(2); +Serial.println(readvalue,DEC); +Serial.println(" "); +delay(250); +} |