summaryrefslogtreecommitdiff
path: root/Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c
diff options
context:
space:
mode:
authorAkshay Chipkar2019-05-10 09:47:11 +0530
committerGitHub2019-05-10 09:47:11 +0530
commitd613a4e0e6279c00bcb44312068ee09574b1d656 (patch)
tree92481d6eef3a592171112787050223ec3ed069c4 /Resources/OpenPLCv2/firmware/ADC.test.arduino/trial.c
parent4ca104e399f96e59de660e082d4e1a0013e44307 (diff)
parent4a1414b2f3e4f98244ac624b14604458e850e6cd (diff)
downloadOpenPLC-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.c65
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);
+}