Bądź na bierząco - RSS

HC-SR04 + Arduino

Wrzesień 5th, 2011 | Brak Komentarzy | Kategoria: arduino

HC-SR04 to ultradźwiękowy czujnik odległości. Bardzo łatwo go połączyć z Arduino.

Parametry:
napięcie zasilania :5V DC
pobór pradu : <2mA
kąt działania: <15° odległość mierzona : 2cm – 500 cm
rozdzielczość : 0.3 cm

Podłączenie:
VCC -> VCC
Trig -> 13 pin
Echo -> 12 pin
GND -> GND

Od arduino
Od arduino

Kod:

#include "Ultrasonic.h"

int pingPin = 13;
int inPin = 12;

void setup() {
Serial.begin( 9600 );
}

void loop()
{
  long duration, inches, cm;

  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(pingPin, LOW);

  pinMode(inPin, INPUT);
  duration = pulseIn(inPin, HIGH);

  cm = microsecondsToCentimeters(duration);
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  delay(1000);
}

long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}

Biblioteka do pobrania: http://arduinosolutions.com/download/Ultrasonic.rar

Datasheet: http://elecfreaks.com/store/download/HC-SR04.pdf

Tagi: , , ,

Arduino simple knight rider effect

Sierpień 25th, 2011 | Brak Komentarzy | Kategoria: arduino

Od jakiegos czasu szukalem Starter Kitu do programowania mikroporcesorow w C. W koncu znalazlem Arduino.

Dzisaj przyszedł Starter Kit, po kilku examplach zalapalłem o co chodzi i tak powstał Knight Rider Effect .

Hardware:
- arduino
- 4x dioda czerwona
- 4x rezystor 220 Om

Do krótszej nóżki diody podpnamy GND, dłuższą poprzez rezystor łączymy z wyjcie z płytki (oczywiscie kolejne piny 13,12,11,10 itd w zależnosci od liczby diód).

Kod banalny:

//Czas opoznienia diody
long interval = 30; 

//tablica pinow diod
int ledPins[] = {
  13,12,11,10};

//count tablicy ledow
int ledPinsCount = 4;

void setup() {
  for(int i=0; i < ledPinsCount; i++)
    pinMode(ledPins[i], OUTPUT);
}

void loop()
{
  for (int i = 0; i < ledPinsCount; i++) {
    digitalWrite(ledPins[i], HIGH);
    delay(interval);

    digitalWrite(ledPins[i], LOW);
    delay(interval);
  }

  for (int i = ledPinsCount; i >= 0; i--) {
    digitalWrite(ledPins[i], HIGH);
    delay(interval);

    digitalWrite(ledPins[i], LOW);
    delay(interval);
  }
}

Filmik prezentujący działanie:

Wersja 2:

Wersja 1:

Tagi: ,