diff options
author | easwaran | 2019-12-30 13:55:24 +0530 |
---|---|---|
committer | easwaran | 2019-12-30 13:55:24 +0530 |
commit | 8fca021e61fb72429fb8cf6c96fcd438ddbc3f68 (patch) | |
tree | 9d0ad890301c0c2a7d1dc2ecd4c20b1335dfa3d0 /firmware/ADC.test.arduino/trial.c | |
parent | 3c3fbca7cba2509a558141d4a5532ce4fab723f8 (diff) | |
download | openplc_v2-8fca021e61fb72429fb8cf6c96fcd438ddbc3f68.tar.gz openplc_v2-8fca021e61fb72429fb8cf6c96fcd438ddbc3f68.tar.bz2 openplc_v2-8fca021e61fb72429fb8cf6c96fcd438ddbc3f68.zip |
[vishnu] unknown
Diffstat (limited to 'firmware/ADC.test.arduino/trial.c')
-rwxr-xr-x[-rw-r--r--] | firmware/ADC.test.arduino/trial.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/firmware/ADC.test.arduino/trial.c b/firmware/ADC.test.arduino/trial.c index e69de29..fae88f6 100644..100755 --- a/firmware/ADC.test.arduino/trial.c +++ b/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); +} |