INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
HC-SR4 Ultraschall Abstands Ampel mit WS2812b Pixel LED´s
14.03.2015, 18:40 (Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2015 18:43 von Wampo.)
Beitrag #1
Lightbulb HC-SR4 Ultraschall Abstands Ampel mit WS2812b Pixel LED´s
Hy,

Miniprojekt für zwischendurch wenn der kleine Programmierhunger kommt Big Grin
MINI-PARKAMPEL
   

Komponenten

1x Arduino Pro Mini + FTDI Tool
1x HC-SR4 Ultraschallwandler
5x WS2812b Pixel LED´s
ein paar Strippen

Code:
#include <Adafruit_NeoPixel.h>
#define NUM_PIXEL 5
#define DATA_PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_PIXEL, DATA_PIN, NEO_GRB + NEO_KHZ800);

#define trigPin 10
#define echoPin 11
#define led 13

void setup() {
  strip.begin();
  clearStrip();
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  
}

void loop() {
  long duration, distance;
  strip.setBrightness(150);  //Pixelhelligkeit / 0 = aus / 255 = voll an
  
  //HC-SR4 abfrage#########################################################
  digitalWrite(led, HIGH);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  digitalWrite(led, LOW);
  
  //Entfernung umlegen auf Strip (Mapping) ###########################################
  int d = map(distance, 0, 50, 0, NUM_PIXEL); // (min entfernung, max entfernung, min Pixel, max Pixel)
    clearStrip();
    for(uint16_t L = 0; L<d; L++) {
    
      strip.setPixelColor(L,wheel(((85-(L*22)) & 255))); //Farbverlauf von Rot nach Grün, erster Wert hier 85 = startfarbe, zweiter Wert hier 22 = ende endfarbe
  }
  strip.show(); // Ausgabe auf Strip
  delay(100);
}

//Farbrad################################################################
uint32_t wheel(byte WheelPos) {
  if(WheelPos < 85) {
    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  }
  else if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  }
  else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}

//Strip ablöschen########################################################
void clearStrip(){
  for(int i = 0; i < NUM_PIXEL; i++) {
    strip.setPixelColor(i, 0);
  }
}

Greez Wampo und viel Spaß beim nachbau


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  WS2812b Matrix CrazyHawk 9 1.343 31.08.2016 12:58
Letzter Beitrag: Binatone
Big Grin Bluetooth CoronaClock mit WS2812b LED mit App für Android Wampo 7 2.661 27.03.2015 21:55
Letzter Beitrag: Wampo
Lightbulb LED Thermometer über WS2812b LED und Dallas DS18B20 Wampo 2 1.736 15.03.2015 17:45
Letzter Beitrag: Wampo
  vorbereitung für spectrum analyzer speziell ws2812b nighty2006 16 4.450 28.02.2015 13:29
Letzter Beitrag: nighty2006
Lightbulb Hexacopter LED mit RC Empfänger und WS2812B LED Wampo 9 3.379 02.01.2015 14:17
Letzter Beitrag: Wampo
  Ampel prokonp 2 1.701 10.11.2014 10:05
Letzter Beitrag: Thorsten Pferdekämper

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste