Шим модуляция проблемы

Тема в разделе "Arduino & Shields", создана пользователем Andrei brest, 20 ноя 2016.

  1. Andrei brest

    Andrei brest Нерд

    Проблема не могу врезать ШИМ в скеч
    просто не понимаю как

    Код (C++):
    void setup() {// Подсветка столешницы версия 1.0
    // Начата 18.08.2016
    // Автор Левчук А.В.
    //******************************************************************************************************
    int ledPin =9; // подключаем -12в блока питания
    int trigPin = 8; // тригер
    int echoPin = 7; // эхо
    int dist1 = 20; // дистанция срабатывания
    int dist2 =0;  // защита от неисправности датчика HC-SR04
    int ledstate = LOW;
    long zaderhka = 20000;  // время работы 20 сек
    unsigned long nahaloMillis = 0;  // начало отсчета времени

    void setup() {

      Serial.begin (9600);  // выводим на экран
      pinMode(trigPin, OUTPUT);
      pinMode(echoPin, INPUT);
    pinMode(9, OUTPUT);
    }

    void loop() {

    long duration;  
    int   cm;
      digitalWrite(trigPin, LOW);
      delayMicroseconds(2);
      digitalWrite(trigPin, HIGH);
      delayMicroseconds(10);
      digitalWrite(trigPin, LOW);
      duration = pulseIn(echoPin, HIGH);
      cm = duration / 82;


    unsigned long prohloMillis; //
    if (ledstate==HIGH)   // если светодиод светится
    {
    prohloMillis=millis();
    if(prohloMillis-nahaloMillis>=zaderhka)  //если больше задоного выключаем
    {
        ledstate = LOW;
        nahaloMillis = 0;
        digitalWrite(ledPin,ledstate);
      }
    }

    if( cm<dist1 ){
    nahaloMillis = prohloMillis; // запоминаем время
      ledstate = HIGH;
      digitalWrite(9,ledstate);
     
     
     
      }

      if( cm==dist2 ){
    nahaloMillis = prohloMillis; // запоминаем время
      ledstate = LOW;
      digitalWrite(9,ledstate);
      }
    //  if( cm==dist2 ){
      //digitalWrite(9,LOW);}
           
      delay(100);
     
    Serial.print(cm);
      Serial.print(".");
       Serial.println(" cm");
      delay(150);
     
     

    }
     
     
  2. rkit

    rkit Гуру

    А что это за самоцель?
     
  3. Andrei brest

    Andrei brest Нерд

    подсветка столешницы на кухне с помощью датчика HC-sr04
     
  4. Andrei brest

    Andrei brest Нерд

    да и я хотел еще подключить фоторезистор чтобы в сумерках бледно светилось
     
  5. rkit

    rkit Гуру

    А ШИМ тут каким боком? Светодиод от ноги ардуино всегда будет светить бледно, кстати говоря.
     
  6. Karabas

    Karabas Гик

    ХЗ что имеется в виду "врезать ШИМ"
    Поэтому вот вам код плавного включения с использованием ШИМа.
    Код (C++):
    for (int i=0; i<255; i++) {
    analogWrite (9, i);
    delay (10);
    }
     
    Tomasina нравится это.
  7. Andrei brest

    Andrei brest Нерд

    я понимаю. как ШИМ работает.
    а может у кого есть идея как туда врезать фоторезистор скажем при значении с него 700 светодиоды должны гореть value = 5 а при 300 на все 255 (при с работке датчика тоже выводить 250 при любом значении value)
     
  8. rkit

    rkit Гуру