нет идии

Тема в разделе "Сделаю проект", создана пользователем Беженарь Миша, 4 сен 2014.

  1. Посоветуйте новичку какой-то проект без использования беспроводных коммуникации.
     
  2. nonamus

    nonamus Нерд

  3. nonamus

    nonamus Нерд

    причем интересен именно проект, а не просто скетч, непонятно на чем работающий)
     
  4. :) СПАСИБО постараюсь сделать;)
     
  5. nonamus

    nonamus Нерд

    надеюсь, все получится)
     
    Беженарь Миша нравится это.
  6. vvr

    vvr Инженерище

    Возьми самое простое - кнопка и светодиод.
    Куча кнопок и куча светодиодов.
    При нажатии кнопок светики загораются в разных комбинациях с разной яркостью с плавным загоранием и затуханием , мигают по разному - комбинаций можно придумать кучу.
    Можно поиграться и с кнопками - короткое нажатие, длительное, удержание, двойной клик, одновременное нажатие нескольких кнопок.
    Для мозгов очень полезно, да и интересно.
    Да ещё и в будущем пригодится однозначно.
     
    Беженарь Миша нравится это.
  7. стандартно, часы с будильником.
    главное чтобы с нормальной установкой этих самых часов.
     
    Беженарь Миша нравится это.
  8. MESS

    MESS Гик

    Где результаты ?
    а то есть очень простая и нужная идея - крышка мусорного ведра открывается про приближении к ней. главное использовать в проекте комплектацию из Амперки. Думаю не у всех дома сенсорные ведра имеются.
     
    Беженарь Миша нравится это.
  9. DSCN9397.JPG Проект сделал:). За большую задержку извиняюсь , не хватало времени:(.
    Почему надо было использовать детали имено из Амперки?


    P.S.видео будет по позже
     
    MESS, robokop и rav_75 нравится это.
  10. 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 таких кнопки?