Не могу соединить два скетча

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

  1. Olezhka

    Olezhka Нуб

    Есть вот такой скетч (что-бы регулировать яркость rgb светодиода):
    Код (C++):

    #define r_led 9
    #define g_led 10
    #define b_led 11
    #define r_pot A0
    #define g_pot A1
    #define b_pot A2
    void setup()
    {
    pinMode(r_led, OUTPUT);
    pinMode(g_led, OUTPUT);
    pinMode(b_led, OUTPUT);
    pinMode(r_pot, INPUT);
    pinMode(g_pot, INPUT);
    pinMode(b_pot, INPUT);
    }
    void loop()
    {
    int x;
    int y;
    int z;
    x = analogRead(r_pot) / 4;
    y = analogRead(g_pot) / 4;
    z = analogRead(b_pot) / 4;
    analogWrite(r_led, x);
    analogWrite(g_led, y);
    analogWrite(b_led, z);
    }
    и вот такой (что-бы переливался rgb светодиод):
    Код (C++):

    #define GREEN 10
    #define BLUE 9
    #define RED 11
    #define delayTime 20
    void setup() {
        pinMode(GREEN, OUTPUT);
        pinMode(BLUE, OUTPUT);
        pinMode(RED, OUTPUT);
        digitalWrite(GREEN, HIGH);
        digitalWrite(BLUE, HIGH);
        digitalWrite(RED, HIGH);
    }
    int redVal;
    int blueVal;
    int greenVal;
    void loop() {
        int redVal = 255;
        int blueVal = 0;
        int greenVal = 0;
        for( int i = 0 ; i < 255 ; i += 1 ){
            greenVal += 1;
            redVal -= 1;
            analogWrite( GREEN, 255 - greenVal );
            analogWrite( RED, 255 - redVal );
            delay( delayTime );
        }
        redVal = 0;
        blueVal = 0;
        greenVal = 255;
        for( int i = 0 ; i < 255 ; i += 1 ){
            blueVal += 1;
            greenVal -= 1;
            analogWrite( BLUE, 255 - blueVal );
            analogWrite( GREEN, 255 - greenVal );
            delay( delayTime );
        }
        redVal = 0;
        blueVal = 255;
        greenVal = 0;
        for( int i = 0 ; i < 255 ; i += 1 ){
            redVal += 1;
            blueVal -= 1;
            analogWrite( RED, 255 - redVal );
            analogWrite( BLUE, 255 - blueVal );
            delay( delayTime );
        }
    }
    Суть в том что-бы по кнопке переключать режимы (управление потенциометрами и переливы)
    В Програмировании нуб, помогите это реализовать.
     
  2. rkit

    rkit Гуру

  3. fogary

    fogary Гик

    Код (C++):
    int redVal;
    int blueVal;
    int greenVal;
    void loop() {
        int redVal = 255;
        int blueVal = 0;
        int greenVal = 0;
    Интересно, как функция будет отличать где глобальные, а где локальные переменные?