|
|
Line 106: |
Line 106: |
| </pre> | | </pre> |
|
| |
|
| =16-04-24 ⱤØ฿Ø₮Ⱬ= | | =16-04-24= |
|
| |
|
| <pre>
| |
| #include <CapacitiveSensor.h>
| |
| CapacitiveSensor sensor = CapacitiveSensor(8,11);
| |
| long raw;
| |
| void setup(){
| |
| sensor.set_CS_AutocaL_Millis(0xFFFFFFFF);
| |
| Serial.begin(115200);
| |
| Serial.println("raw");
| |
| }
| |
| void loop(){
| |
| raw = sensor.capacitiveSensor(10);
| |
| Serial.println(raw);
| |
| delay(10);
| |
| }
| |
| </pre>
| |
|
| |
|
| ==Theremin==
| |
| <pre>
| |
| #include <CapacitiveSensor.h>
| |
|
| |
| CapacitiveSensor sensor = CapacitiveSensor(8,11);
| |
|
| |
| int speaker = 13; //connect a speaker between pin 13 and GND
| |
| long raw;
| |
|
| |
|
| |
| void setup(){
| |
| sensor.set_CS_AutocaL_Millis(0xFFFFFFFF);
| |
| Serial.begin(115200);
| |
| Serial.println("raw");
| |
| }
| |
| void loop(){
| |
| raw = sensor.capacitiveSensor(10); //lowest 450 & highest 750
| |
| raw = min(raw, 750); //max value of raw is 750
| |
| raw = max(raw, 10); //min value of raw is 10
| |
| long speakerValue = map(raw,450,750,100,4000); //scales to value from 450 and 750 to 100 and 4000
| |
| tone(speaker,speakerValue); //plays the frequency (raw) on port 13(speaker)
| |
| Serial.print(raw);
| |
| Serial.print(" ");
| |
| Serial.println(speakerValue);
| |
|
| |
| }
| |
| </pre>
| |
|
| |
| ==Capactive sensor as button==
| |
| <pre>
| |
| #include <CapacitiveSensor.h>
| |
|
| |
| CapacitiveSensor sensor = CapacitiveSensor(8,11);
| |
|
| |
| int speaker = 13;
| |
| long raw;
| |
|
| |
|
| |
| void setup(){
| |
| sensor.set_CS_AutocaL_Millis(0xFFFFFFFF);
| |
| Serial.begin(115200);
| |
| Serial.println("raw");
| |
| }
| |
| void loop(){
| |
| raw = sensor.capacitiveSensor(10); //lowest 450 & highest 750
| |
| if(raw > 600){ //if raw is bigger than 600
| |
| Serial.println("touched"); //print "touched"
| |
| tone(speaker,440); //play a tone with 440 hz
| |
| delay(1000); //stop 1000 second
| |
| noTone(speaker); //stop playing the tone
| |
| }
| |
| delay(10);
| |
|
| |
| }
| |
| </pre>
| |
|
| |
| ==Servo motor movement between 0 and 90 degrees==
| |
| <pre>
| |
| //this example controls a standard servo motor and moves it between 0 and 90 degrees
| |
| //the servo has three different wires
| |
| //the red wire is plus and connected to 5v
| |
| //the brown wire is minus and connected to GND
| |
| //the orange wire is the signal wire and connected to pin 3 (remember the ~-symbol - it means PWM)
| |
|
| |
| #include <Servo.h>
| |
|
| |
|
| |
|
| |
| Servo theServo;
| |
|
| |
| void setup() {
| |
| Serial.begin(115200);
| |
| theServo.attach(3);
| |
| }
| |
|
| |
| void loop() {
| |
| for(int i = 0; i < 90; i++){
| |
| theServo.write(i);
| |
| Serial.println(i);
| |
| delay(50);
| |
| }
| |
| for(int i = 90; i > 0; i--){
| |
| theServo.write(i);
| |
| Serial.println(i);
| |
| delay(10);
| |
| }
| |
| }
| |
| </pre>
| |
|
| |
| ==automatic trash can - servo motor connected capactive sensor==
| |
| <pre>
| |
| #include <Servo.h>
| |
| #include <CapacitiveSensor.h>
| |
|
| |
| CapacitiveSensor sensor = CapacitiveSensor(8,11);
| |
|
| |
| Servo theServo;
| |
| long raw;
| |
|
| |
| void setup() {
| |
| Serial.begin(115200);
| |
| theServo.attach(3);
| |
| sensor.set_CS_AutocaL_Millis(0xFFFFFFFF);
| |
| Serial.begin(115200);
| |
| Serial.println("raw");
| |
| }
| |
|
| |
| void loop() {
| |
| raw = sensor.capacitiveSensor(10); //lowest 450 & highest 750
| |
| if(raw > 600){ //if raw is bigger than 600
| |
| open(); //do void open
| |
| delay(4000); //wait for 4 seconds
| |
| close(); //close void opne
| |
| }
| |
| }
| |
|
| |
| void open(){
| |
| //open
| |
| for(int i = 0; i < 90; i++){ //count from 0 to 90
| |
| theServo.write(i); //move the servo from 0 to 90
| |
| Serial.println(i);
| |
| delay(50);
| |
| }
| |
| }
| |
|
| |
| void close(){
| |
| //close
| |
| for(int i = 90; i > 0; i--){
| |
| theServo.write(i);
| |
| Serial.println(i);
| |
| delay(10);
| |
| }
| |
| }
| |
| </pre>
| |
|
| |
| ==trash can controlled by serial commands==
| |
| <pre>
| |
| //in this sketch the servo is controlled by serial commands from the computer
| |
| //if you send the letter "o" to the arudino it will execute "void open()"
| |
| //if you send the letter "c" to the arduino it will execute "void close()"
| |
| #include <Servo.h> //import the servo library
| |
|
| |
| Servo theServo; //create a servo
| |
|
| |
| void setup() {
| |
| Serial.begin(115200); //serial connection
| |
| theServo.attach(3); //theServo is at port 3 (remeber the ~(PWM)-Symbol
| |
| }
| |
|
| |
| void loop() {
| |
| if(Serial.available()){ //if there is a serial command comming
| |
| char command = Serial.read(); //read the serial command
| |
| if(command == 'o'){ //is the command and 'o'
| |
| open(); //do void open
| |
| }
| |
| if(command == 'c'){
| |
| close();
| |
| }
| |
| }
| |
| }
| |
|
| |
| void open(){
| |
| //open
| |
| for(int i = 0; i < 90; i++){ //count from 0 to 90 with int i
| |
| theServo.write(i); //i is the servo position
| |
| Serial.println(i); //print the servo position to the serial monitor
| |
| delay(50); //wait for 50 milliseconds
| |
| }
| |
| }
| |
|
| |
| void close(){
| |
| //close
| |
| for(int i = 90; i > 0; i--){
| |
| theServo.write(i);
| |
| Serial.println(i);
| |
| delay(10);
| |
| }
| |
| }
| |
| </pre>
| |
| ==Potentiometer opening the trash can==
| |
| <pre>
| |
| //in this sketch the servo is controlled by an potentiometer
| |
| //a potentiometer is a variable resistor that can be changed by rotation
| |
| #include <Servo.h> //import the servo library
| |
|
| |
| Servo theServo; //create a servo
| |
|
| |
| void setup() {
| |
| Serial.begin(115200); //serial connection
| |
| theServo.attach(3); //theServo is at port 3 (remeber the ~(PWM)-Symbol
| |
| }
| |
|
| |
| void loop() {
| |
| int value = analogRead(A0); //read the analog pin A0 the value is between 0 and 1023
| |
| value = map(value,0,1023,0,180); //adjust value from 0 to 1023 to 0 and 180 because the servo works with degrees
| |
| theServo.write(value);
| |
| }
| |
| </pre>
| |
|
| |
| ==painting machine==
| |
|
| |
| <pre>
| |
| //in this sketch one poti controls one servo
| |
| #include <Servo.h>
| |
|
| |
| Servo jointOne;
| |
|
| |
| void setup() {
| |
| Serial.begin(115200);
| |
| Serial.println("start");
| |
| jointOne.attach(10);
| |
| }
| |
|
| |
| void loop() {
| |
| int value = analogRead(A0);
| |
| value = map(value, 0, 1023, 0, 180);
| |
| jointOne.write(value);
| |
| delay(10);
| |
| }
| |
| </pre>
| |
|
| |
| ==Motor control ==
| |
| <pre>
| |
| //connect the dc-motor to the motorshield motor port 1
| |
| //connect a external power source
| |
| #include <Adafruit_MotorShield.h>
| |
|
| |
| Adafruit_MotorShield AFMS = Adafruit_MotorShield();
| |
| Adafruit_DCMotor *myMotor = AFMS.getMotor(1);
| |
|
| |
|
| |
| void setup() {
| |
| Serial.begin(115200);
| |
| AFMS.begin();
| |
| myMotor->setSpeed(200);
| |
| myMotor->run(RELEASE);
| |
| }
| |
|
| |
|
| |
| void loop() {
| |
| myMotor->run(FORWARD); //forward
| |
| myMotor->setSpeed(255); //max speed
| |
| delay(2000);
| |
|
| |
| myMotor->run(RELEASE); //break
| |
| delay(2000);
| |
|
| |
| myMotor->run(BACKWARD); //backward
| |
| myMotor->setSpeed(255); //max speed
| |
| delay(2000);
| |
|
| |
| myMotor->run(RELEASE); //break
| |
| delay(2000);
| |
|
| |
| }
| |
| </pre>
| |
|
| |
|
| =23-04-24 l͓̽i͓̽n͓̽k͓̽i͓̽n͓̽g͓̽ t͓̽h͓̽e͓̽ r͓̽e͓̽a͓̽l͓̽m͓̽s͓̽= | | =23-04-24 l͓̽i͓̽n͓̽k͓̽i͓̽n͓̽g͓̽ t͓̽h͓̽e͓̽ r͓̽e͓̽a͓̽l͓̽m͓̽s͓̽= |
ḿ̬̏ͤͅỉ͔͖̜͌c͕͗ͤ̕̕r̴̨̦͕̝o̯̱̊͊͢c͕͗ͤ̕̕o̯̱̊͊͢ṇ̤͛̒̍t̲̂̓ͩ̑r̴̨̦͕̝o̯̱̊͊͢l̙͖̑̾ͣl̙͖̑̾ͣẹ̿͋̒̕r̴̨̦͕̝ 1̨̹̦͍̀0̗̜͕̅̃1̨̹̦͍̀
09-04-2024 e͎l͎e͎c͎t͎r͎i͎c͎ ͎s͎e͎n͎s͎e͎s͎
https://pzwiki.wdka.nl/mw-mediadesign/images/7/7e/Cricket.mp4
sensors and actuators
introduction to Arduino
LOLIN 32 Installation party :~)
step 1: download Arduino software
step 2: download driver for microcontroller
step 3: install driver
_windows: open Device Manager >> find UART device >> right click and update driver >> select driver
Hello World!
in the Arduino program, select the correct board (WEMOS LOLIN32) and select the USB port you are using
(if you are unsure, check the listed ports, unplug and see what changed)
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello World!"); //sends a message to the computer
}
Simple Led blink example
int ledPin = 13; //the int ledPin is 13
void setup() {
pinMode(ledPin,OUTPUT); //ledPin is a OUTPUT
}
void loop() {
digitalWrite(ledPin,HIGH); //turns pin 13 on
delay(500); //stops the loop for 500 milliseconds
digitalWrite(ledPin,LOW); //turns pin 13 off
delay(500); //stops the loop for 500 milliseconds
}
Traffic light example
int RedLedPin = 13; //the int RedLedPin is 13
int GreenLedPin = 12; //the int GreenLedPin is 12
void setup() {
pinMode(RedLedPin,OUTPUT); //ledPin is a OUTPUT
pinMode(GreenLedPin,OUTPUT); //ledPin is a OUTPUT
}
void loop() {
digitalWrite(GreenLedPin,HIGH); //turns green led on
delay(5000); //stops the loop for 5000 milliseconds
for(int i = 0; i < 5; i++){ //this for loop gets 5 times repeated
digitalWrite(GreenLedPin,LOW); //turns green led off
delay(500); //stops the loop for 500 milliseconds
digitalWrite(GreenLedPin,HIGH); //turns green led off
delay(500); //stops the loop for 500 milliseconds
}
digitalWrite(GreenLedPin,LOW); //turns green led off
digitalWrite(RedLedPin,HIGH); //turns red led on
delay(5000); //stops the loop for 5000 milliseconds
digitalWrite(RedLedPin,LOW); //turns red led on
}
how to document
>> template:
title
This sketch does this
components list
Led
220ohm resistor
type of sensor
schematic drawing
File:Your pic
arduino code
16-04-24
23-04-24 l͓̽i͓̽n͓̽k͓̽i͓̽n͓̽g͓̽ t͓̽h͓̽e͓̽ r͓̽e͓̽a͓̽l͓̽m͓̽s͓̽