Guest User

Arduino Mini PC ( Slave )

a guest
Apr 30th, 2013
123
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. int pinled[10]={2,8,7,6,5,13,9,10,11,12};
  4. int led = 2;
  5. int led2 = 8;
  6. int led3 = 7;
  7. int led4 = 6;
  8. int led5 = 5;
  9. int led6 = 13;
  10. int led7 = 9;
  11. int led8 = 10;
  12. int led9 = 11;
  13. int led10 = 12;
  14. int a=0;
  15. int tim=0;
  16. int temp=0;
  17. // the setup routine runs once when you press reset:
  18. void setup() {                
  19. for(int i=0;i<10;i++){
  20. pinMode(pinled[i],OUTPUT);
  21. Serial.begin(9600);
  22. }
  23. pinMode(3,INPUT);
  24. }
  25. void loop() {
  26.   a=digitalRead(3);
  27.   if(a == LOW){                    //stupida animazione di test dei led
  28.   for(int i=0;i<10;i++){           //e evita di intasare il buffer del master
  29.     digitalWrite(pinled[i],HIGH);
  30.     delay(analogRead(A5)/10);
  31.   }
  32.   for(int i=0;i<10;i++){
  33.     digitalWrite(pinled[i],LOW);
  34.     delay(analogRead(A4)/10);
  35.   }
  36.   }
  37.   else{
  38.     int y=analogRead(A5)+1; // non fate domande... fonziona, bene se mettete
  39.     long int x=y*10;        // *999 non so perche va in crash
  40.     x=x*10;                 // solo cosi mi funziona
  41.     x=x*9;                  // mi interessano i valori da 0 a 900
  42.     x=x/1024;               // del potenziometro quindi invio n+1000
  43.     x=x+1000;               //in modo da avere sempre 4 perche se n=0 viene
  44.     if (tim<1000){          //su seriale 1000 se n=900 su seriale 1900
  45.       tim++;                // basta poi togliere 1000 e ottengo n
  46.     }                      
  47.     else{
  48.       tim=0;
  49.     Serial.println(x);
  50.     }
  51.     if (Serial.available()) {
  52.     while(Serial.available()>0){
  53.       int readserial= Serial.read()-47;
  54.       //Serial.println(readserial);
  55.       if (readserial>temp){
  56.       for(int i=temp;i<readserial;i++){
  57.         digitalWrite(pinled[i],LOW);
  58.       }
  59.       }
  60.       else {
  61.         for(int i=readserial;i<=temp;i++){
  62.         digitalWrite(pinled[i],HIGH);
  63.       }
  64.       }
  65.       temp=readserial;
  66. }
  67.     }
  68.  
  69.   }
  70. }
RAW Paste Data