мы девочки

Тема в разделе "Посоветуйте детальки", создана пользователем Ekaterina, 16 фев 2014.

  1. Unixon

    Unixon Оракул Модератор

    На фото толком не видно что куда подключено. Вроде бы все куда нужно включено, но полностью не могу разглядеть. Попробуйте все отключить, проверить разводку питания и подключить все обратно по одному прибору за раз, проверяя работу после каждого подключения.
     
  2. acos

    acos Официальный гик Администратор

    А от чего запитана светодиодная лента? Она, часом, не от 5V выхода запитана? Туда должен идти Vin.
     
  3. Ekaterina

    Ekaterina Нуб

    Лента от Vina, все работает, но плата нагревается и программа работает не так.
     
  4. acos

    acos Официальный гик Администратор

    Плохо дело. Следуйте инструкциям Unixonа.
     
  5. Unixon

    Unixon Оракул Модератор

    Греется только ардуина или макетки тоже?

    Попробуйте откатиться на шаг назад и проверить все датчики и ленту по отдельности.

    Если от ардуины отключить вообще все (кроме питания), она все равно греется?

    Если подключать устройства по одному, после подключения какого из них начинается нагрев?
     
    Последнее редактирование: 19 фев 2014
  6. Kristina

    Kristina Нерд

    avrdude: stk500_getsync(): not in sync: resp=0x00


    что может значит эта ошибка?
     
  7. Kristina

    Kristina Нерд

    мы нашли одну ошибку в коде-там red и blue были вставлены в один пин,поменяли пин и перебили в коде; но тут другая проблема,попытались понять почему не все цвета горят,стали перебивать их значеня в скетче,перезагрузили,в итоге оказалось так,будто программа не реагирует на изменения значения цвета(
     
  8. acos

    acos Официальный гик Администратор

    Эта ошибка означает, что контроллер не отвечает при прошивке. Выставите правильный com-порт
    Сколько можно повторять одно и то же? Покажите же уже наконец код!
     
  9. Kristina

    Kristina Нерд

    #include <OneWire.h>


    #define PIN_BUTTON_BLACK 0

    #define PIN_BUTTON_GREEN 1

    #define PIN_BUTTON_WHITE 2

    #define PIN_PHOTOSENSOR A0

    #define PIN_LED_RED 3

    #define PIN_LED_GREEN 6

    #define PIN_LED_BLUE 5

    #define PIN_THERMAL_SENSOR 7

    #define PIN_BUZZER 9


    #define STATE_WAITING 0

    #define STATE_COOLING_DOWN 1

    #define STATE_WAITING_CAP 2

    #define STATE_TIMER 3


    #define TEMP_BLACK 90

    #define TEMP_GREEN 70

    #define TEMP_WHITE 65


    #define MODE_NONE 0

    #define MODE_BLACK 1

    #define MODE_GREEN 2

    #define MODE_WHITE 3


    #define TIMER_BLACK_MIN 5

    #define TIMER_GREEN_MIN 3

    #define TIMER_WHITE_MIN 5


    #define PHOTOSENSOR_THRESHOLD 300


    OneWire ds(10);


    int state = STATE_WAITING;

    int temp_limit = TEMP_BLACK;

    int selected_mode = MODE_NONE;


    void ledColor(int r, int g, int b)

    {

    analogWrite(PIN_LED_RED, r);

    analogWrite(PIN_LED_GREEN, g);

    analogWrite(PIN_LED_BLUE, b);

    }


    void ledColor(int r, int g, int b, int a)

    {

    analogWrite(PIN_LED_RED, (r*a)/256);

    analogWrite(PIN_LED_GREEN, (g*a)/256);

    analogWrite(PIN_LED_BLUE, (b*a)/256);

    }


    bool buttonPressed(int pin)

    {

    bool result = !digitalRead(pin);

    if (result) delay(500);

    return result;

    }


    int getTemperature()

    {

    byte data[2];

    ds.reset();

    ds.write(0xCC);

    ds.write(0x44);

    delay(750);

    ds.reset();

    ds.write(0xCC);

    ds.write(0xBE);

    data[0] = ds.read();

    data[1] = ds.read();

    int temp = (data[1]<<8)+data[0];

    temp = temp>>4;

    return temp;

    }


    bool isCapOpen()

    {

    return (analogRead(PIN_PHOTOSENSOR)>PHOTOSENSOR_THRESHOLD);

    }


    void setup()

    {

    pinMode(PIN_LED_RED, OUTPUT);

    pinMode(PIN_LED_GREEN, OUTPUT);

    pinMode(PIN_LED_BLUE, OUTPUT);

    ledColor(255,255,255);

    }


    void loop()

    {

    switch (state)

    {

    default:

    case STATE_WAITING:

    {

    if (buttonPressed(PIN_BUTTON_BLACK))

    {

    ledColor(255,0,255);

    temp_limit = TEMP_BLACK;

    selected_mode = MODE_BLACK;

    }

    else if (buttonPressed(PIN_BUTTON_GREEN))

    {

    ledColor(0,255,0);

    temp_limit = TEMP_GREEN;

    selected_mode = MODE_GREEN;

    }

    else if (buttonPressed(PIN_BUTTON_WHITE))

    {

    ledColor(255,255,0);

    temp_limit = TEMP_WHITE;

    selected_mode = MODE_WHITE;

    }



    if (MODE_NONE!=selected_mode)

    {

    state = STATE_COOLING_DOWN;

    }



    break;

    }

    case STATE_COOLING_DOWN:

    {

    int temp = getTemperature();

    if (temp <= temp_limit)

    {

    tone(PIN_BUZZER, 4000, 500);

    delay(500);

    tone(PIN_BUZZER, 4000, 500);

    delay(500);

    tone(PIN_BUZZER, 4000, 500);



    state = STATE_WAITING_CAP;

    }

    break;

    }

    case STATE_WAITING_CAP:

    {

    if (!isCapOpen())

    {

    state = STATE_TIMER;

    }

    break;

    }

    case STATE_TIMER:

    {

    switch (selected_mode)

    {

    case MODE_BLACK: { delay(60000*(long int)TIMER_BLACK_MIN); break; }

    case MODE_GREEN: { delay(60000*(long int)TIMER_GREEN_MIN); break; }

    case MODE_WHITE: { delay(60000*(long int)TIMER_WHITE_MIN); break; }

    }



    tone(PIN_BUZZER, 4000, 500);

    delay(500);

    tone(PIN_BUZZER, 4000, 500);

    delay(500);

    tone(PIN_BUZZER, 4000, 500);



    selected_mode = MODE_NONE;

    state = STATE_WAITING;

    ledColor(255,255,255);



    break;

    }

    }


    }
     
  10. Kristina

    Kristina Нерд

    порт видит правильный ,подключен к нему
     
  11. acos

    acos Официальный гик Администратор

    Это следует из того, что в правом нижнем углу Arduino IDE написано «Arduino Uno on COMX», или из того, что в меню «Сервис»→«Последовательный порт» выставлен правильный COM—порт?
    Правильный ответ: в меню «Сервис»→«Последовательный порт» выставлен правильный COM—порт
    http://wiki.amperka.ru/arduino-быстрый-старт:start
     
  12. Kristina

    Kristina Нерд

    да,в моем случае COM3 ,он единственный и отмечен галочкой
     
  13. acos

    acos Официальный гик Администратор

    avrdude: stk500_getsync(): not in sync: resp=0x00 - и эта ошибка всё еще на месте?
     
  14. acos

    acos Официальный гик Администратор

    «Панель управления»→«диспетчер устройств»→«Порты (COM и LPT)». Что написано?
     
  15. Kristina

    Kristina Нерд

    все!!! перезагрузил без ошибки,ура ура ура!!!Спасибо!!!
     
  16. Kristina

    Kristina Нерд

    и цвета теперь нужные) когда еще пин поменяли)
     
  17. acos

    acos Официальный гик Администратор

    А красный светодиод горит?
     
  18. Kristina

    Kristina Нерд

    ну у нас теперь фиолетовый вместо красного,как надо)
     
  19. acos

    acos Официальный гик Администратор

    Молодцы. Unixon должен вами гордиться)
     
  20. acos

    acos Официальный гик Администратор

    Отдельно красный если запустить, работает?
    У меня были сомнения по поводу одновременной работы tone и analogWrite на 3-м порту