Arduino
Arduino | |
|
Vývoj MIT aplikace s Arduino:
What we needs:
Sestavy:
Examples
/* Blink * http://www.arduino.cc/en/Tutorial/Blink
*/
int ledPin = 13; // LED je připojena na pin 13
void setup(){ // tato část proběhne jednou po startu
pinMode(ledPin, OUTPUT); // nastaví pin jako výstupní
}
void loop(){ // procedura
digitalWrite(ledPin, HIGH); // rozsvícení LED
delay(1000); // pauza 1s
digitalWrite(ledPin, LOW); // zhasnutí LED
delay(1000); // pauza 1s
}
Tools:
- .hex you can find in c:\Users\*\Local Settings\Temp\build*.tmp\*.hex
Tutorials:
Aplikace s Arduino
-
ARD07 LED Cube
-
ARD05 B4short s L293 + ping [1]
Videa
Experimenty
www
Arduino a PICAXE na Windows 8 64-bit
advance
Arduino IDE for programming Atmega Microcontrollers
How to program Arduino by using USBasp without bootloader
Building an Arduino on a Breadboard
Serial connection for your Arduino / Atmega
Basic Minimal Arduino Without Crystal
Burning the Bootloader on ATMega328 using Arduino UNO as ISP
USBASP Bootloading a ATMega328p with a 8MHz internal clock
Make your own arduino serverino
Shield
LoL Shield věnovaný sponzorem školy: jitenkaa, (zde je možné stavebnici objednat)
What is available...
-
USB převodník UART TTL s čipem CH340
-
HC-SR04 Ultrazvukový senzor-ultrasonic
-
Membránová klávesnice 4x3 Slim
-
L298N Arduino Duální Řadič DC Motor H-Můstek
-
Sensor Shield V5
-
RGB LED Strip
Examples 2
- LED bliká v Morseově abecedě SOS ( . . . - - - . . . ) s opakováním s časovým odstupem 4 sekundy
- 8 LED bliká dle pravdivostní tabulky tak, aby svítala v daném čase postupně jen jedna LED (had)
- Aktivací tlačítka LED, která předtím svítila zhasne
- Každým zmáčknutím tlačítka se změní stav LED na opačný
- Jedním tlačítkem LED zhasne a jiným se rozsvítí
Test tlačítka
void setup()
{
pinMode( 2, INPUT_PULLUP);
pinMode( 8, OUTPUT);
}
void loop()
{
digitalWrite( 8 , !digitalRead(2) );
}
const int buttonPin = 2; //
const int ledPin = 8; //
int buttonState = 0; // variable
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}
else {
digitalWrite(ledPin, LOW);
}
}
Traffic light
int pin;
void setup() {
for (int i=4; i <= 13; i++){
pinMode(i, OUTPUT);
}
}
void blik(int pin)
{
digitalWrite(pin, LOW);
delay(500);
digitalWrite(pin, HIGH);
}
void loop()
{
for (int i=4; i <= 13; i++){
blik(i);
}
}
DC motor
int MotorL1 = 3;
int MotorL2 = 11;
int MotorR1 = 5;
int MotorR2 = 6;
void loop() {
MotorForward();
delay(2000);
TurnLeft();
delay(2000);
}
void MotorForward() {
digitalWrite(MotorL1, LOW); //
digitalWrite(MotorL2, HIGH); //
digitalWrite(MotorR1, LOW); //
digitalWrite(MotorR2, HIGH); //
}
void TurnLeft() {
analogWrite(MotorL1, LOW); //
analogWrite(MotorL2, 128); //
analogWrite(MotorR1, 128); //
digitalWrite(MotorR2, LOW); //
}
RGB
.....
void loop()
{
setColor(255, 0, 0); // red
delay(1000);
setColor(0, 255, 0); // green
delay(1000);
setColor(0, 0, 255); // blue
delay(1000);
setColor(255, 255, 0); // red + green
delay(1000);
setColor(255, 0, 255); // red + blue
delay(1000);
setColor(0, 255, 255); // green + blue
delay(1000);
}
void setColor(int red, int green, int blue)
{
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
}
SR04 ultrasonic
#define trigPin 8
#define echoPin 9
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2); //
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); //
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
Servo
#include <Servo.h>
Servo myservo;
int pos = 0;
void setup() {
myservo.attach(6);
Serial.begin (9600);
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
Serial.println(pos);
delay(20);
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
Serial.println(pos);
delay(20);
}
}
RBT servo
#include <Servo.h> // Include servo library
Servo servoLeft; // Declare left servo signal
unsigned char motion = 0;
void setup() // Built in initialization block
{
pinMode(5,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(9,OUTPUT);
servoLeft.attach(9); //
Serial.begin (9600);
}
void loop()
{
motion = digitalRead(5) + digitalRead(6)*2 + digitalRead(7)*4;
Serial.print(motion);
Serial.println("");
switch(motion)
{
case 0b00000110: servoLeft.write(30); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(2,LOW); break;
case 0b00000101: servoLeft.write(60); digitalWrite(4,HIGH); digitalWrite(3,LOW); digitalWrite(2,HIGH); break;
case 0b00000011: servoLeft.write(90); digitalWrite(4,LOW); digitalWrite(3,HIGH); digitalWrite(2,HIGH); break;
case 0b00000111: servoLeft.write(120); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(2,HIGH); break;
delay(15);
}
}