산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino를 사용한 자기 부상

구성품 및 소모품

Arduino Nano R3
모든 arduino를 사용할 수 있지만 보호막은 나노용으로 제작되었습니다.
× 1
전자석 12v 25mm 직경.
× 1
선형 홀 효과 센서 49E
홀 효과 스위치를 사용하지 마십시오.
× 1
달링턴 고전력 트랜지스터
팁 120
× 1
저항 1k 옴
× 1
1N4007 – 고전압, 고전류 정격 다이오드
× 1
전원 공급 장치 12V 1A
× 1
브레드보드(일반)
× 1
SparkFun 푸시버튼 스위치 12mm
× 2
점퍼 와이어(일반)
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

아두이노와 함께하는 레비테이터.

몸을 3D로 인쇄할 수 있습니다.

https://www.thingiverse.com/thing:1392023

<울>
  • 인쇄 및 장착이 간편합니다(접착제만 있고 나사 없음).
  • <울>
  • arduino 보드에 펌웨어(Levitator.ino)를 설치하기만 하면 됩니다.
  • <울>
  • 펌웨어 설치 후 컴퓨터가 필요 없고 12V 전원만 있으면 됩니다.
  • <울>
  • 스위치를 사용하여 영구 자석 위치를 조정합니다.
  • <울>
  • arduino 직렬 모니터를 사용하여 올바른 값을 확인하세요.
  • <울>
  • 장난감에 올바른 값을 하드 코딩할 수 있습니다.
  • 프로토보드를 사용하거나 보드를 만들 수 있습니다(Arduino Nano).

    http://www.thingiverse.com/thing:1392530

    아니면 하나만 구매하세요:

    https://oshpark.com/shared_projects/kxH3Ak1b

    주의:

    <울>
  • 홀 센서를 팁 하단(top_sensor.stl)에 놓고 이미지 보기
  • <울>
  • 올바르게 작동하려면 홀 효과 센서가 전자기에서 최소 5mm 거리에 있어야 합니다.
  • <울>
  • 다른 선형 홀 센서를 사용할 수 있습니다. (홀 센서 스위치를 사용하지 마십시오. );
  • <울>
  • 네오디뮴 영구 자석 사용 (일반 자석에서는 작동하지 않음);
  • <울>
  • 무거운 물체가 더 안정적입니다.
  • 자세한 내용과 팁은 Thingiverse에서 내 제품을 참조하세요.

    레비테이터 3D 프린팅:

    https://www.thingiverse.com/make:201394

    Arduino Nano용 쉴드:

    https://www.thingiverse.com/make:201420

    쉽습니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • 레비테이터.이노
  • Levitator_PID.ino
  • Levitator.ino아두이노
    아두이노를 이용한 자기부상 장난감 코드.
    간편함(PID 없음)<사전>//===========================================================|// Ekobots Innovation Ltda - www.ekobots.com.br |// Juan Sirgado y Antico - www.jsya.com.br |//- -------------------------------------------------- ------|// 프로그램 자기 부상자 - 2016/02/06 |// 판권 소유 2016 |//============================================================|int anaPin =1; // Arduino 아날로그 핀 1;int digPin =5; // 아두이노 디지털 핀 5;int subPin =7; // 아두이노 디지털 핀 7;int addPin =8; // 아두이노 디지털 핀 8;//int anaVal =0; // 아날로그 읽기(홀 센서) 값; 부울 digVal =0; // 디지털 쓰기(전자석) 값;//int levVal =228; // 부상 포인트 값;int dlyVal =250; // 지연 값 마이크로 초;//--------------------------------------------------------- ----------------|void setup(){ // 레비테이터 초기화 시작; Serial.begin(57600); Serial.println("JSyA의 공중 부양기"); Serial.println("시작 중..."); // 디지털 핀 작업 모드 설정; 핀모드(디지털핀, 출력); 핀모드(서브핀, INPUT_PULLUP); 핀모드(추가핀, INPUT_PULLUP); // 레비테이터 초기화 End; Serial.println("시작했습니다.");}//------------------------------------- --------------------|void loop() { // 홀 센서 읽기(Magnetic Field Intensity); anaVal =analogRead(anaPin); // 부상 지점의 값을 증가시킵니다. if (digitalRead(addPin) ==LOW) { levVal++; 값_로그(); 지연(250); } // 부상 지점의 값을 줄입니다. if (digitalRead(subPin) ==LOW) { levVal--; 값_로그(); 지연(250); } // 부상 지점을 확인합니다. if (anaVal levVal) { digVal =HIGH; } // // 전자석 켜기/끄기; // 센서 값과 부상 지점을 기준으로 함; 디지털 쓰기(digPin, digVal); delayMicroseconds(dlyVal);}//----------------------------------------- ---------------|void value_log()// 아날로그/디지털/부상 값 Print;{ // 홀 센서 값 표시; Serial.print("anaVal=["); Serial.print(anaVal); Serial.print("]-"); // 전자석 상태 표시 On=1/Off=0; Serial.print("digVal=["); Serial.print(digVal); Serial.print("]-"); // 부상 지점 값을 표시합니다. Serial.print("levVal=["); Serial.print(levVal); Serial.println("];");}//===========================================================|
    Levitator_PID.ino아두이노
    아두이노를 이용한 자기부상 장난감 코드.
    하드(PID 버전)<사전>//===========================================================|// Ekobots Innovation Ltda - www.ekobots.com.br |// Juan Sirgado y Antico - www.jsya.com.br |//- -------------------------------------------------- ------|// 프로그램 자기 부상자 PID - 2016/10/06 |// 판권 소유 2016 |//============================================================|int anaPin =1; // Arduino 아날로그 핀 1int digPin =5; // Arduino 디지털 핀 5int subPin =7; // Arduino 디지털 핀 7int addPin =8; // Arduino 디지털 핀 8//int anaVal =0; // 아날로그 유효성 digVal =0; // 디지털 값 //int levVal =262; // 부상 값int dlyVal =10; // 지연 값 // float timVal =0; // 시간 값 //-------------------------------------------- -------------|// PID 값float setpoint =0;float 측정값 =0;float 출력 =0;float 적분 =0;float 미분 =0;float 오류 =0;float previous_error =0; float dt =0.1; float Kp =1.0; float Ki =0.1; float Kd =0.01;//-------------------------- -------------------------------|void setup(){ // 레비테이터 초기화 시작; Serial.begin(57600); Serial.println("JSyA의 공중 부양기"); Serial.println("시작 중..."); // 디지털 핀 작업 모드 설정; 핀모드(디지털핀, 출력); 핀모드(추가핀, INPUT_PULLUP); 핀모드(서브핀, INPUT_PULLUP); // timVal =millis(); 설정값 =levVal; // 레비테이터 초기화 End; Serial.println("시작했습니다.");}//------------------------------------- --------------------|void loop() // PID{ // 홀 센서 읽기(Magnetic Field Intensity); anaVal =analogRead(anaPin); // PID 계산 측정값 =anaVal; 오류 =설정값 - 측정값; 적분 =적분 + 오차 * dt; 미분 =(오류 - 이전_오류) / dt; 출력 =(-Kp * 오류) + (-Ki * 적분) + (-Kd * 미분); 이전_오류 =오류; // 최종 값 설정 digVal +=output; // 부상 지점 값을 확인합니다. if (digVal <0) digVal=0; if (digVal> 255) digVal=255; // 전자석 값 증가/감소; // 센서 값과 부상 지점을 기준으로 함; analogWrite(digPin, digVal); // 디버그에 대한 로그 값 표시;// if((millis()-timVal)> 500)// {// value_log();// timVal =millis();// } // 부상 지점 값 증가; if (digitalRead(addPin) ==LOW) { 설정값++; 값_로그(); 지연(250); } if (digitalRead(subPin) ==LOW) { 설정값--; 값_로그(); 지연(250); } // 전자석 상태 변경 사이의 시간; delayMicroseconds(dlyVal);}//----------------------------------------- ---------------|void value_log()// 아날로그/디지털/부상 값 Print;{ // 홀 센서 값 표시; Serial.print("anaVal=["); Serial.print(anaVal); Serial.print("]-"); // 전자석 상태 표시 On=1/Off=0; Serial.print("digVal=["); Serial.print(digVal); Serial.print("]-"); // 부상 지점 값을 표시합니다. Serial.print("설정값=["); Serial.print(설정값); Serial.println("];");}//===========================================================|

    회로도

    프리징 IDE

    제조공정

    1. Arduino로 DIY 가장 간단한 IV9 Numitron 시계
    2. K30 센서로 CO2 모니터링
    3. 1Sheeld/Arduino를 사용한 청각 장애인용 통신
    4. Arduino로 코인 억셉터 제어
    5. Bluetooth가 탑재된 Arduino로 LED 제어!
    6. Arduino 또는 ESP8266이 있는 정전 용량 지문 센서
    7. Nextion 디스플레이로 재생
    8. Nunchuk 제어 로봇 팔(Arduino 포함)
    9. Arduino 반발 전자기 부상
    10. Arduino로 태양 복사열 측정