Зависает плата

Тема в разделе "Arduino & Shields", создана пользователем Nikasak, 9 май 2018.

  1. Nikasak

    Nikasak Нуб

    При написани скетча для управления лед-лентой дистанционо при использовании ethernet shield+arduinio uno+HMI Virtuino ардуино зависает
    Выручайте

    Код (C++):


    #include "VirtuinoEthernet_WebServer.h"                           // Neccesary virtuino library for ethernet shield
    #include <dht.h>
    #include <Adafruit_NeoPixel.h>
    #ifdef __AVR__
      #include <avr/power.h>
    #endif
    #define dht_apin A0 // Analog Pin sensor is connected to
    #define PIN            3
    #define NUMPIXELS      15
    dht DHT;
    int vikl=0;
    byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};                // Set the ethernet shield mac address.
    IPAddress ip(192, 168, 0, 150);                                   // Set the ethernet shield ip address. Check your gateway ip address first
    VirtuinoEthernet_WebServer virtuino(8000);                          // default port=8000



    Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

    int delayval = 250; // delay



    //================================================================== setup
    //==================================================================
    //==================================================================
    void setup()
    {
     
      virtuino.DEBUG=true;                                            // set this value TRUE to enable the serial monitor status
      Serial.begin(9600);                                             // Enable this line only if DEBUG=true
                                       
      Ethernet.begin(mac, ip);
     
      virtuino.password="1234";                                     // Set a password to your web server for more protection
                                                                    // avoid special characters like ! $ = @ # % & * on your password. Use only numbers or text characters
                                 
     
    //------ enter your setup code below

    Serial.println("DHT11 Humidity & temperature Sensor\n\n");

       pinMode(6,OUTPUT);                                           // Connect a Led to pin 6
                                                                    // Don't use pins 10,11,12,13 in your code. They used by Ethernet Shield


    // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
    #if defined (__AVR_ATtiny85__)
      if (F_CPU == 1116000000) clock_prescale_set(clock_div_1);
    #endif
      // End of trinket special code

      pixels.begin(); // This initializes the NeoPixel library.
                                                                   

             
    }


    //================================================================== loop
    //==================================================================
    //==================================================================
    ////void readTemperatures(){
    //   Serial.println("Read sensors' values...");
    //      float temperature = DHT.readTemperature();
    //      float humidity = DHT.readHumidity();
    //      if (isnan(temperature) || isnan(humidity)) {
    //        Serial.println("Failed to read from DHT");
    //      }
    //      else {
    //          Serial.println("Temp="+String(temperature)+" *C");
    //          Serial.println("Humidity="+String(humidity)+" %");
    //          virtuino.vMemoryWrite(0,temperature);    // write temperature 1 to virtual pin V0. On Virtuino panel add a value display or an analog instrument to pin V0
    //          virtuino.vMemoryWrite(1,humidity);    // write temperature 1 to virtual pin V1. On Virtuino panel add a value display or an analog instrument to pin V1
    //      }
    //
    //}

    void loop(){
       virtuino.run();           //  necessary command to communicate with Virtuino android app
     
        //------ enter your loop code below here
        //------ avoid to use delay() function in your code. Use the command virtuino.vDelay() instead of delay()

        // your code .....
    //Start of Program
      DHT.read11(dht_apin);

        Serial.print("Current humidity = ");
        Serial.print(DHT.humidity);
        Serial.print("%  ");
        Serial.print("temperature = ");
        Serial.print(DHT.temperature);
        Serial.println("C  ");
      delay(2000);//Wait 5 seconds before accessing sensor again.
      virtuino.vMemoryWrite(0,DHT.temperature);    // write temperature 1 to virtual pin V0. On Virtuino panel add a value display or an analog instrument to pin V0
      virtuino.vMemoryWrite(1,DHT.humidity);    // write temperature 1 to virtual pin V1. On Virtuino panel add a value display or an analog instrument to pin V1
      //Fastest should be once every two seconds.


    // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.

      for(int i=0;i<NUMPIXELS;i++){

        // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
        //virtuino.vMemoryWrite(3,pixels.Color(10,10,0));
        //pixels.setPixelColor(i, pixels.Color(10,10,0)); // Moderately bright green color.
        //pixels.show(); // This sends the updated pixel color to the hardware.
         //int vkl=virtuino.vMemoryRead(3);
    //     if (vkl=0){
         pixels.setPixelColor(i, pixels.Color(0,0,0));
       // else {
         //pixels.setPixelColor(i, pixels.Color(10,0,50));}
       
         

       


       
        pixels.show(); // This sends the updated pixel color to the hardware.

        delay(delayval); // Delay for a period of time (in milliseconds).

     
     
     
     
      }}
    // end loop()




           
         //----- end of your coder


     
     

    Вложения:

  2. Daniil

    Daniil Гуру

    Используйте вывод по ком-порту для отладки программы.
    Проверьте подключение.
     
  3. Nikasak

    Nikasak Нуб

    Может проблема в входных параметрах, но без них никак
    нашел проблу дилэи убрал и все норм