2020年12月14日 星期一

喵~搖桿/旋鈕

 maker uno + 搖桿/旋鈕

  • 組裝:
    • GND - GND
    • 5V - +5V
    • A0 - URX
  • 好玩的程式:
    • void setup() {
    •   for(int i=2;i<=13;i++){
    •     pinMode(i,OUTPUT);
    •   }
    • }

    • void loop() {
    •   int now = analogRead(A0);//0~1023
    •   int level= now/(1024/13);
    •   for(int i=2;i<=13;i++){
    •     if(i<level)digitalWrite(i,HIGH);
    •     else digitalWrite(i,LOW);
    •   }
    • }
  • 加上英文字母:
    • void setup() {
    •   for(int i=2;i<=13;i++){
    •     pinMode(i,OUTPUT);
    •   }
    •   Serial.begin(9600);
    • }

    • void loop() {
    •   int now = analogRead(A0);//0~1023
    •   int level= now/(1024/13);
    •   for(int i=2;i<=13;i++){
    •     if(i<level)digitalWrite(i,HIGH);
    •     else digitalWrite(i,LOW);
    •   }
    •   Serial.write(('A'+level));
    •   delay(100);
    • }
  • 結合Processing~
    • import processing.serial.*;
    • Serial myPort;
    • void setup() 
    • {
    •   size(700, 50);
    •   myPort = new Serial(this,"COM4",9600);
    • }
    • int level=0;
    • void draw() {
    •   background(255);
    •   fill(200,100,255);
    •   rect(0,0,level*50,50);
    •   if(myPort.available()>0){
    •     int now=myPort.read();//A~N
    •     level=now-'A';
    •   }
    • }
  • 變得更靈敏~
    • Arduino:
      • void setup() {
      •   for(int i=2;i<=13;i++){
      •     pinMode(i,OUTPUT);
      •   }
      •   Serial.begin(9600);
      • }

      • void loop() {
      •   int now = analogRead(A0);//0~1023
      •   int level= now/4;//0~255
      •   for(int i=2;i<=13;i++){
      •     if(i<level/14)digitalWrite(i,HIGH);
      •     else digitalWrite(i,LOW);
      •   }
      •   Serial.write(level);
      •   delay(20);//1000/20=50一秒傳50張圖
      • }
    • Processing:
      • import processing.serial.*;
      • Serial myPort;
      • void setup() 
      • {
      •   size(765, 50);
      •   myPort = new Serial(this,"COM4",9600);
      • }
      • int level=0;
      • void draw() {//60fbs一秒收60張圖
      •   background(255);
      •   fill(765,100,255);
      •   rect(0,0,level*3,50);
      •   if(myPort.available()>0){
      •     int now=myPort.read();//0~255
      •     level=now;
      •   }
      • }

沒有留言:

張貼留言