Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Testing an UNO, typing pins in on the serial monitor.
- //In setup, pins are set for input or output. Must be done before uploading.
- //For use, just type number for pin in serial send.
- //If input, state is shown, if output, state is toggled. If on goes off, if off goes on.
- //If pin is higher than 13, its a analog pin and is allways read as analog.
- #include <string.h>
- char readstring[20];
- char tmpstr[20];
- int t=0;
- int pinType[20];
- bool pinState[20];
- void setup()
- {
- Serial.begin(9600);
- Serial.println("serial on/off ");
- pinModeSet(2,INPUT);
- pinModeSet(3,INPUT);
- pinModeSet(4,INPUT);
- pinModeSet(5,INPUT);
- pinModeSet(6,INPUT);
- pinModeSet(7,INPUT);
- pinModeSet(8,INPUT);
- pinModeSet(9,OUTPUT);
- pinModeSet(10,INPUT);
- pinModeSet(11,INPUT);
- pinModeSet(12,INPUT);
- pinModeSet(13,OUTPUT);
- for(int t=14; t<20; t++)
- pinModeSet(t,INPUT); //analog channels, can't be output. A0=14, A1=15 etc
- }
- void loop()
- {
- t=0;
- int num,val;
- while(Serial.available())
- {
- delay(3);
- char c = Serial.read();
- if(c=='\n') c='\0';
- readstring[t]= c;
- t++;
- }
- if(strlen(readstring)>0)
- {
- Serial.println(readstring);
- num=atoi(readstring);
- if(num>1&&num<20)
- {
- if(pinType[num]==INPUT)
- {
- if(num<14)
- {
- val=digitalRead(num);
- Serial.print("Digital read on pin: ");
- }
- else
- {
- val=analogRead(num);
- Serial.print("Analog read on pin: ");
- }
- Serial.print(num);
- Serial.print(" has value : ");
- Serial.println(val);
- }
- if(pinType[num]==OUTPUT)
- {
- if(num<14)
- {
- if(pinState[num]==LOW)
- pinState[num]=HIGH;
- else
- pinState[num]=LOW;
- digitalWrite(num,pinState[num]);
- Serial.print("Digital write on pin: ");
- Serial.print(num);
- Serial.print(" set to state : ");
- Serial.println(pinState[num]);
- }
- }
- }
- }
- readstring[0]='\0';
- }
- void pinModeSet(int n,int type)
- {
- pinMode(n,type);
- pinType[n]=type;
- pinState[n]=LOW;
- }
- void printstrhex(char *st)
- {
- int l=strlen(st);
- for(int t=0; t<l; t++)
- {
- Serial.print(st[t],HEX);
- Serial.print("-");
- }
- Serial.println();
- }
- void cpystr(char * dst, char *sst, int t)
- {
- int l=strlen(sst);
- int c=0;
- for(int n=t; n<=l; n++)
- {
- dst[c]=sst[n];
- c++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment