以下為電子實習的exam
需要材料:
Wire: n個
Button: 一個
330Ω Resistor: 五個
1kΩ Resistor: 一個
10kΩ Resistor: 一個
Potentiometer: 一個(不限電駔大小)
NPN 9013: 一個
Arduino Uno: 一個
LED: 五個
Breadboard: 一個
DC Motor: 一個
電路圖(Circuit diagram)

程式碼(Code)
int potenPin = A0; // 可變電阻
int buttonPin = 2; // 按鈕
int ledPins [] {3, 4, 5, 6, 7}; // led燈
int motorPin = 9; // 馬達
// 六段變速 100/300/500/700/900/1000
void setup() {
Serial.begin(9600);
pinMode(potenPin, INPUT);
pinMode(buttonPin, INPUT);
for(int L = 0; L < 5; L++) {
pinMode(ledPins[L], OUTPUT);
}
pinMode(motorPin, OUTPUT);
}
void loop() {
int motorValue = analogRead(potenPin);
Serial.println(motorValue);
int bStop = digitalRead(buttonPin);
Serial.println(bStop);
if (bStop == LOW) {
if (motorValue < 100) {
analogWrite(motorPin, 0);
for (int L = 0; L < 5; L++) {
digitalWrite(ledPins[L], LOW);
}
}
else if (motorValue < 300) {
analogWrite(motorPin, 300);
for (int L = 0; L < 1; L++) {
digitalWrite(ledPins[L], HIGH);
}
for (int L = 1; L < 5; L++) {
digitalWrite(ledPins[L], LOW);
}
}
else if (motorValue < 500) {
analogWrite(motorPin, 500);
for (int L = 0; L < 2; L++) {
digitalWrite(ledPins[L], HIGH);
}
for (int L = 2; L < 5; L++) {
digitalWrite(ledPins[L], LOW);
}
}
else if (motorValue < 700) {
analogWrite(motorPin, 700);
for (int L = 0; L < 3; L++) {
digitalWrite(ledPins[L], HIGH);
}
for (int L = 3; L < 5; L++) {
digitalWrite(ledPins[L], LOW);
}
}
else if (motorValue < 900) {
analogWrite(motorPin, 900);
for (int L = 0; L < 4; L++) {
digitalWrite(ledPins[L], HIGH);
}
for (int L = 4; L < 5; L++) {
digitalWrite(ledPins[L], LOW);
}
}
else if (900 < motorValue) {
analogWrite(motorPin, 1000);
for (int L = 0; L < 5; L++) {
digitalWrite(ledPins[L], HIGH);
}
}
}
else if (bStop == HIGH) {
for(int s = 0; s < 5; s++) {
digitalWrite(ledPins[s],LOW);
}
digitalWrite(motorPin,LOW);
delay(100);
}
}
影片(Video)
small exam from 40423222 on Vimeo.
參考網站:
levelMotor:
https://40423222.github.io/2017springcd_hw/blog/Arduino-threeLevel_Motor.html
參考對象:
https://40423222.github.io/2017springcd_hw/blog/
參考對象:
