summaryrefslogtreecommitdiff
path: root/firmware/ADC.test.arduino/trial.c
diff options
context:
space:
mode:
authoreaswaran2019-12-30 13:55:24 +0530
committereaswaran2019-12-30 13:55:24 +0530
commit8fca021e61fb72429fb8cf6c96fcd438ddbc3f68 (patch)
tree9d0ad890301c0c2a7d1dc2ecd4c20b1335dfa3d0 /firmware/ADC.test.arduino/trial.c
parent3c3fbca7cba2509a558141d4a5532ce4fab723f8 (diff)
downloadopenplc_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.c65
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);
+}