Подсветим... ночной путь: подсветка кровати.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 25 ноя 2014.

Метки:
  1. alp69

    alp69 Гик

    Странное описание проверки... Измеряем сопротивление, а результат измерения считываем в вольтах... Удивительно.
    Ну да ладно. Вот Вы пишете, что намерили 100-103 между стоком и истоком. 100-103 - чего? Ом, кОм? Если 100 Ом и менее (особенно в обоих направлениях) - можете смело выкидывать транзистор.
    Тем не менее для пущей уверенности после закрытия транзистора, измерьте сопротивление сток-исток в обоих направлениях. Если покажет Омы (даже сотни Ом) - кидайте его в утиль.
     
    Последнее редактирование: 9 окт 2016
  2. Pashtet

    Pashtet Нерд

    Транзисторы уже мысленно в мусорке.

    А пойдёт ли такая схема? (я уже запутался в подключении "-" и тем, откуда его можно забрать)
     
  3. Limoney

    Limoney Гик

    А что написано на транзисторе - маркировка
     
  4. alp69

    alp69 Гик

    тынц
    Впрочем последняя, выложенная Вами схема, тоже вполне рабочая.
     
    Последнее редактирование: 9 окт 2016
  5. ИгорьК

    ИгорьК Давно здесь

    Она подключается точно так-же. Аналогичные названия ног. Абсолютно аналогичные.
    Разберитесь с названиями ног у меня и подключите к ногам на Уно, которые называются точно так же.

    Этот датчик и будет работать точно так же. Или наоборот. Будет считать день за ночь, но работать будет.

    45ватт / 12 вольт = 3.75 ~ 4 ампер.

    Этот точно подойдет: http://www.chipdip.ru/product/irl540npbf/
    Можете сами поискать транзисторы, которые при 5 вольтах на затворе отдают такой ток.
     
  6. Limoney

    Limoney Гик

    Подключение
    digitalWrite(PIN_PWM, HIGH); выключить светодиодную ленту
    digitalWrite(PIN_PWM, LOW); включить светодиодную ленту
     

    Вложения:

    • lenta1.jpg
      lenta1.jpg
      Размер файла:
      312,2 КБ
      Просмотров:
      114
  7. alp69

    alp69 Гик

    Не путайте человека подтяжкой затвора к плюсу. Пусть со своей схемой пока разберется.
     
  8. Limoney

    Limoney Гик

    Ну ок!
     
    alp69 нравится это.
  9. Pashtet

    Pashtet Нерд

    Урааа. Заработала ;)

    Но, похоже, на ардуино сдох 4 и/или 7 разъём. На 3 (мосфет) и 2 (ИК) всё заработало (при замене разъёмов в коде и плате работать отказывается).

    Мосфет :D сегодня IRL540NPBF

    Спасибо!
     
    alp69 и Limoney нравится это.
  10. alp69

    alp69 Гик

    Ожидаемо. Очевидно эксперименты с диодом вместо полевика привели к выжиганию соответствующих портов Ардуино. Тем не менее, рад за Вас. :)
     
  11. Limoney

    Limoney Гик

    Поздравляю! ;)
     
  12. maxim 1234

    maxim 1234 Нерд

    А сможете написать скетч для уно, лсд шилд сенсорный,нарисовать на нем 3 кнопки и чтоб они включали и выкл. 3 реле?
    #include <SPFD5408_Adafruit_GFX.h>
    #include <SPFD5408_Adafruit_TFTLCD.h>
    #include <SPFD5408_TouchScreen.h>
    #if defined(__SAM3X8E__)
    #undef __FlashStringHelper::F(string_literal)
    #define F(string_literal) string_literal
    #endif


    // Pines necesarios para los 4 pines del panel tactil
    #define YP A1 // Pin analogico A1 para ADC
    #define XM A2 // Pin analogico A2 para ADC
    #define YM 7
    #define XP 6

    // Definimos la presion máxima y minima que podemos realizar sobre el panel
    #define MINPRESSURE 10
    #define MAXPRESSURE 1000

    // Para mejor precision de la presion realizada, es necesario
    // medir la resistencia entre los pines X+ y X-.
    // En Shield TFT 2.4" LCD se mide entre los pines A2 y 6
    // Instancia del panel tactil (Pin XP, YP, XM, YM, Resistencia del panel)
    TouchScreen ts = TouchScreen(XP, YP, XM, YM, 550);

    #define TS_MINX 120
    #define TS_MINY 115
    #define TS_MAXX 945
    #define TS_MAXY 900

    #define LCD_CS A3 // Definimos los pines del LCD
    #define LCD_CD A2 // para poder visualizar elementos graficos
    #define LCD_WR A1
    #define LCD_RD A0
    #define LCD_RESET A4

    #define BLACK 0x0000 // Definimos los colores
    #define BLUE 0x001F // que utilizaremos para
    #define RED 0xF800 // el texto y los elementos graficos
    #define GREEN 0x07E0
    #define CYAN 0x07FF
    #define MAGENTA 0xF81F
    #define YELLOW 0xFFE0
    #define WHITE 0xFFFF

    Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Instancia LCD

    int X; // Variables que almacenaran la coordenada
    int Y; // X, Y donde presionemos y la variable Z
    int Z; // almacenara la presion realizada

    int a = 0; // variable "flag" para control rebotes

    #define ledA 8 // Anodo del led conectado pin digital 5
    #define ledK 9 // Catodo del led conectado pin digital 3

    void setup(void)
    {
    tft.begin(0x9341); // Iniciamos el LCD especificando el controlador ILI9341.
    tft.setRotation(1);
    tft.fillScreen(WHITE); // Pintamos la pantalla de Rojo

    pinMode(13, OUTPUT);
    pinMode(ledA,OUTPUT);
    pinMode(ledK, OUTPUT);

    tft.drawRect(10, 10, 140, 60, WHITE); // Dibujamos un "boton"

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE ); // Definimos el color del texto
    tft.println("OFF"); // Escribimos por pantalla
    }

    void loop()
    {
    lecturaPanel(); // Realizamos lectura del panel para detectar presion y coordenadas

    // Si la pulsación del eje X se produce entre los puntos 40 y 160
    // Y la pulsacion del eje Y se produce entre los puntos 20 y 60
    // Y la presión realizada esta entre el margen determinado
    if((X > 10 && X < 150) && (Y > 10 && Y < 70) && (Z > MINPRESSURE && Z < MAXPRESSURE))
    {
    if (a == 0) // Si la variable flag esta en 0
    {
    tft.fillRect(10, 10, 140, 60, CYAN); // Dibujamos nuestro boton relleno de color

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE ); // Definimos el color del texto
    tft.println("OFF"); // Escribimos por pantalla


    //AQUI REALIZAMOS LA ACCION QUE DESEEMOS: ENCENDER EL LED
    digitalWrite(ledA, HIGH);
    digitalWrite(ledK, LOW);

    a = 1; // Ponemos la variable flag en 1
    delay(200);
    }
    else if (a == 1) // Si la variable flag esta en 1
    {
    tft.fillRect(10, 10, 140, 60, MAGENTA); // Dibujamos el fondo de nuestro boton en cyan

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE); // Definimos el color del texto
    tft.println("ON"); // Escribimos por pantalla

    //AQUI REALIZAMOS LA ACCION QUE DESEEMOS: APAGAR EL LED
    digitalWrite(ledA,LOW);
    digitalWrite(ledK, LOW);

    a = 0; // Ponemos la variable flag en 0 para evitar los rebotes
    delay(150);
    }
    }
    }

    void lecturaPanel()
    {
    digitalWrite(13, HIGH);
    TSPoint p = ts.getPoint(); // Realizamos lectura de las coordenadas
    digitalWrite(13, LOW);

    pinMode(XM, OUTPUT); // La librería utiliza estos pines como entrada y salida
    pinMode(YP, OUTPUT); // por lo que es necesario declararlos como salida justo
    // despues de realizar una lectura de coordenadas.

    // Mapeamos los valores analogicos leidos del panel tactil (0-1023)
    // y los convertimos en valor correspondiente a la medida del LCD 320x240
    X = map(p.x, TS_MAXX, TS_MINX, tft.width(), 0);
    Y = map(p.y, TS_MAXY, TS_MINY, tft.height(), 0);
    Z = p.z;
    }





    вот один диод вкл. и выкл.а как сделать для 3 диодов или реле и 3 таких кнопки?
     
  13. alp69

    alp69 Гик

    Уберите код в тег.
     
  14. ZAZ-965

    ZAZ-965 Гик

  15. maxim 1234

    maxim 1234 Нерд

    Код (C++):
    #include <SPFD5408_Adafruit_GFX.h>
    #include <SPFD5408_Adafruit_TFTLCD.h>
    #include <SPFD5408_TouchScreen.h>
    #if defined(__SAM3X8E__)
    #undef __FlashStringHelper::F(string_literal)
    #define F(string_literal) string_literal
    #endif


    // Pines necesarios para los 4 pines del panel tactil
    #define YP A1 // Pin analogico A1 para ADC
    #define XM A2 // Pin analogico A2 para ADC
    #define YM 7
    #define XP 6

    // Definimos la presion máxima y minima que podemos realizar sobre el panel
    #define MINPRESSURE 10
    #define MAXPRESSURE 1000

    // Para mejor precision de la presion realizada, es necesario
    // medir la resistencia entre los pines X+ y X-.
    // En Shield TFT 2.4" LCD se mide entre los pines A2 y 6
    // Instancia del panel tactil (Pin XP, YP, XM, YM, Resistencia del panel)
    TouchScreen ts = TouchScreen(XP, YP, XM, YM, 550);

    #define TS_MINX 120
    #define TS_MINY 115
    #define TS_MAXX 945
    #define TS_MAXY 900

    #define LCD_CS A3 // Definimos los pines del LCD
    #define LCD_CD A2 // para poder visualizar elementos graficos
    #define LCD_WR A1
    #define LCD_RD A0
    #define LCD_RESET A4

    #define BLACK 0x0000 // Definimos los colores
    #define BLUE 0x001F // que utilizaremos para
    #define RED 0xF800 // el texto y los elementos graficos
    #define GREEN 0x07E0
    #define CYAN 0x07FF
    #define MAGENTA 0xF81F
    #define YELLOW 0xFFE0
    #define WHITE 0xFFFF

    Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Instancia LCD

    int X; // Variables que almacenaran la coordenada
    int Y; // X, Y donde presionemos y la variable Z
    int Z; // almacenara la presion realizada

    int a = 0; // variable "flag" para control rebotes

    #define ledA 8 // Anodo del led conectado pin digital 5
    #define ledK 9 // Catodo del led conectado pin digital 3

    void setup(void)
    {
    tft.begin(0x9341); // Iniciamos el LCD especificando el controlador ILI9341.
    tft.setRotation(1);
    tft.fillScreen(WHITE); // Pintamos la pantalla de Rojo

    pinMode(13, OUTPUT);
    pinMode(ledA,OUTPUT);
    pinMode(ledK, OUTPUT);

    tft.drawRect(10, 10, 140, 60, WHITE); // Dibujamos un "boton"

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE ); // Definimos el color del texto
    tft.println("OFF"); // Escribimos por pantalla
    }

    void loop()
    {
    lecturaPanel(); // Realizamos lectura del panel para detectar presion y coordenadas

    // Si la pulsación del eje X se produce entre los puntos 40 y 160
    // Y la pulsacion del eje Y se produce entre los puntos 20 y 60
    // Y la presión realizada esta entre el margen determinado
    if((X > 10 && X < 150) && (Y > 10 && Y < 70) && (Z > MINPRESSURE && Z < MAXPRESSURE))
    {
    if (a == 0) // Si la variable flag esta en 0
    {
    tft.fillRect(10, 10, 140, 60, CYAN); // Dibujamos nuestro boton relleno de color

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE ); // Definimos el color del texto
    tft.println("OFF"); // Escribimos por pantalla


    //AQUI REALIZAMOS LA ACCION QUE DESEEMOS: ENCENDER EL LED
    digitalWrite(ledA, HIGH);
    digitalWrite(ledK, LOW);

    a = 1; // Ponemos la variable flag en 1
    delay(200);
    }
    else if (a == 1) // Si la variable flag esta en 1
    {
    tft.fillRect(10, 10, 140, 60, MAGENTA); // Dibujamos el fondo de nuestro boton en cyan

    tft.setCursor(50,25); // Colocamos el cursor
    tft.setTextSize(4); // Especificamos el tamaño del texto
    tft.setTextColor(WHITE); // Definimos el color del texto
    tft.println("ON"); // Escribimos por pantalla

    //AQUI REALIZAMOS LA ACCION QUE DESEEMOS: APAGAR EL LED
    digitalWrite(ledA,LOW);
    digitalWrite(ledK, LOW);

    a = 0; // Ponemos la variable flag en 0 para evitar los rebotes
    delay(150);
    }
    }
    }

    void lecturaPanel()
    {
    digitalWrite(13, HIGH);
    TSPoint p = ts.getPoint(); // Realizamos lectura de las coordenadas
    digitalWrite(13, LOW);

    pinMode(XM, OUTPUT); // La librería utiliza estos pines como entrada y salida
    pinMode(YP, OUTPUT); // por lo que es necesario declararlos como salida justo
    // despues de realizar una lectura de coordenadas.

    // Mapeamos los valores analogicos leidos del panel tactil (0-1023)
    // y los convertimos en valor correspondiente a la medida del LCD 320x240
    X = map(p.x, TS_MAXX, TS_MINX, tft.width(), 0);
    Y = map(p.y, TS_MAXY, TS_MINY, tft.height(), 0);
    Z = p.z;
    }

     
     
  16. Marinka

    Marinka Нуб

    очень симпатично выглядит !
     
  17. maxim 1234

    maxim 1234 Нерд

    У меня сейчас такой выключатель стоит только с тремя кнопками. Туалет ванна и кухня))) на стене смотрится очень эффектно. В дальнейшем планирую добавить туда кнопки для вытяжки с символом вентилятора. Кстати может кто-нибудь подскажет как их нарисовать на tft дисплее?
     
  18. вит89

    вит89 Нуб

    мужики, подскажите как в эту схему вставить такой модуль с мосфетом
     

    Вложения:

    • CK-1202_MED.jpg
      CK-1202_MED.jpg
      Размер файла:
      22,6 КБ
      Просмотров:
      74
    • bedlight.jpg
      bedlight.jpg
      Размер файла:
      181,7 КБ
      Просмотров:
      83
  19. maxim 1234

    maxim 1234 Нерд

    Плюс,минус и пин управления с ардуинки,запитываешь модуль. В синие клемники блок питания плюс,минус, а другая пара клемников на ленту,соответственно плюс и минус.
     
  20. вит89

    вит89 Нуб

    "maxim 1234 благодарствую за подсказку