aso4200

UNO test

Aug 21st, 2022 (edited)
1,193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.33 KB | None | 0 0
  1. //Testing an UNO, typing pins in on the serial monitor.
  2. //In setup, pins are set for input or output. Must be done before uploading.
  3. //For use, just type number for pin in serial send.
  4. //If input, state is shown, if output, state is toggled. If on goes off, if off goes on.
  5. //If pin is higher than 13, its a analog pin and is allways read as analog.
  6.  
  7. #include <string.h>
  8.  
  9. char readstring[20];
  10. char tmpstr[20];
  11. int t=0;
  12. int pinType[20];
  13. bool pinState[20];
  14.  
  15.  
  16. void setup()
  17. {
  18.     Serial.begin(9600);
  19.     Serial.println("serial on/off ");
  20.     pinModeSet(2,INPUT);
  21.     pinModeSet(3,INPUT);
  22.     pinModeSet(4,INPUT);
  23.     pinModeSet(5,INPUT);
  24.     pinModeSet(6,INPUT);
  25.     pinModeSet(7,INPUT);
  26.     pinModeSet(8,INPUT);
  27.     pinModeSet(9,OUTPUT);
  28.     pinModeSet(10,INPUT);
  29.     pinModeSet(11,INPUT);
  30.     pinModeSet(12,INPUT);
  31.     pinModeSet(13,OUTPUT);
  32.     for(int t=14; t<20; t++)
  33.         pinModeSet(t,INPUT); //analog channels, can't be output. A0=14, A1=15 etc
  34.  
  35. }
  36.  
  37. void loop()
  38. {
  39.     t=0;
  40.     int num,val;
  41.  
  42.     while(Serial.available())
  43.     {
  44.         delay(3);  
  45.         char c = Serial.read();
  46.         if(c=='\n') c='\0';
  47.         readstring[t]= c;
  48.         t++;
  49.     }
  50.    
  51.     if(strlen(readstring)>0)
  52.     {
  53.         Serial.println(readstring);
  54.         num=atoi(readstring);
  55.         if(num>1&&num<20)
  56.         {
  57.             if(pinType[num]==INPUT)
  58.             {
  59.                 if(num<14)
  60.                 {
  61.                     val=digitalRead(num);
  62.                     Serial.print("Digital read on pin: ");
  63.                 }
  64.                 else
  65.                 {
  66.                     val=analogRead(num);
  67.                     Serial.print("Analog read on pin: ");
  68.                 }
  69.                 Serial.print(num);
  70.                 Serial.print(" has value : ");
  71.                 Serial.println(val);
  72.             }
  73.             if(pinType[num]==OUTPUT)
  74.             {
  75.                 if(num<14)
  76.                 {
  77.                     if(pinState[num]==LOW)
  78.                         pinState[num]=HIGH;
  79.                     else
  80.                         pinState[num]=LOW;
  81.                     digitalWrite(num,pinState[num]);
  82.                     Serial.print("Digital write on pin: ");
  83.                     Serial.print(num);
  84.                     Serial.print(" set to state : ");
  85.                     Serial.println(pinState[num]);
  86.                 }
  87.             }
  88.         }
  89.     }
  90.     readstring[0]='\0';
  91. }
  92.  
  93. void pinModeSet(int n,int type)
  94. {
  95.     pinMode(n,type);
  96.     pinType[n]=type;
  97.     pinState[n]=LOW;
  98. }
  99.  
  100. void printstrhex(char *st)
  101. {
  102.   int l=strlen(st);
  103.   for(int t=0; t<l; t++)
  104.   {
  105.     Serial.print(st[t],HEX);
  106.     Serial.print("-");
  107.   }
  108.   Serial.println();
  109. }
  110.  
  111. void cpystr(char * dst, char *sst, int t)
  112. {
  113.     int l=strlen(sst);
  114.     int c=0;   
  115.    
  116.     for(int n=t; n<=l; n++)
  117.     {
  118.         dst[c]=sst[n];
  119.         c++;
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment