منتظر آموزش بعدی ما باشید
خانه / الکترونیک / دیجیتال / آردوینو / کنترل سطح آب با آردوینو
کنترل سطح آب با آردوینو

کنترل سطح آب با آردوینو

به نام خدا

سلام ، با یکی دیگر از سری مدارات کمیاب وب سایت ای ال سی وان در خدمت دوستان عزیز هستیم.

این مطلب یک مدار کنترل و تشخیص سطح آب (مایعات) است که در 4 سطح آب را کنترل میکند.

این مدار بسیار کاربردی میباشد و میتواند جایگزین خوبی برای مدارات بزرگی باشد که این کار را انجام می دهند.

بعضی اعلانات را هم به وسیله بازری (بوق) که دارد اعلام میکند مثلا اگر مشکلی در تشخیص به وجود آمد بوق میزند.

نحوه کارکرد مدار بسیار واضح است ولی اگر با مشکلی روبه رو شدید آن را مطرح کنید.

 

 

مدار تشخیص سطح آب با آردوینو:

تشخیص سطح آب

مدار کنترل سطح آب

 

نکته:

از سیم های آلمینیوم برای سیم داخل آب استفاده کنید.

 

 

کد برنامه :

 

 

درباره‌ Admin

تیم مدیریتی ای ال سی وان تصمیم دارد که تمام تجربیات و دانسته های خود را بخصوص در زمینه الکترونیک در اختیار شما دوستان عزیز قرار دهد . بانظرات خود ، خودتان را در پیشرفت سایت سهیم بدانید

۱۱ نظر

  1. با پروتوءوس أجرام میکنم led و LCD روشم نمیشه

  2. دست گلت درد نکنه،فقط إز کدوم logicاستفاده کنم؟

  3. دست گلت درد نکنه کامپایلش درست شد،فقط إز کدوم logicاستفاده کمن؟

  4. محمد نادب

    سلام.این برنامه 9 تا خطا میده که اولیش به PIN مربوطه
    #include
    #include
    #include
    // Declare your global variables here

    void main(void)
    {
    DDRB=0x00;
    PORTB=0x00;
    DDRD=0xff;
    PORTD=0x00;
    lcd_init(16);

    // Input/Output Ports initialization
    // Port A initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

    // Port B initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

    // Port C initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

    // Port D initialization
    // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
    DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
    // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
    PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=0xFF
    // OC0 output: Disconnected
    TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
    TCNT0=0x00;
    OCR0=0x00;

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=0xFFFF
    // OC1A output: Disconnected
    // OC1B output: Disconnected
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
    TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;

    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=0xFF
    // OC2 output: Disconnected
    ASSR=0<<AS2;
    TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
    TCNT2=0x00;
    OCR2=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
    MCUCSR=(0<<ISC2);

    // USART initialization
    // USART disabled
    UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

    // Analog Comparator initialization
    // Analog Comparator: Off
    // The Analog Comparator's positive input is
    // connected to the AIN0 pin
    // The Analog Comparator's negative input is
    // connected to the AIN1 pin
    ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
    SFIOR=(0<<ACME);

    // ADC initialization
    // ADC disabled
    ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

    // SPI initialization
    // SPI disabled
    SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

    // TWI initialization
    // TWI disabled
    TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

    while (1)
    {
    if (PINB.7|PIN.6==1) {
    PORTD.7=1;
    delay_ms(500);
    lcd_clear( );
    lcd_gotoxy(0,0)
    lcd_putsf("feul level:25%");
    delay_ms(200);
    }
    else {
    if (PINB.7|PINB.6|PINB.5|PINB.4==1) {
    PORTD.7=1;
    delay_ms(500);
    PORTD.6=1;
    delay_ms(250);
    lcd_clear( );
    lcd_putsf("feul is:50%");
    delay_ms(200);
    }
    else {
    if (PINB.7|PINB.6|PINB.5|PINB.4|PINB.3|PINB.2|==1) {
    PORTD.7=1;
    delay_ms(500);
    PORTD.6=1;
    delay_ms(200);
    PORTD.5=1;
    delay_ms(100);
    lcd_clear( );
    lcd_gotoxy(0,0);
    lcd_putsf("feul is:75%");
    delay_ms(200);
    }
    else {
    if (PINB.7|PINB.6|PINB.5|PINB.|PINB.3||PINB.2|PINB.1==1) {
    PORTD.7=1;
    delay_ms(500);
    PORTD.6=1;
    delay_ms(200);
    PORTD.5=1;
    delay_ms(100);
    PORTD.4=1;
    delay_ms(100);
    lcd_clear( );
    lcd_gotoxy(0,0);
    lcd_putsf("feul is:85%");
    delay_ms(200);
    }
    else {
    if (PINBB.7|PINB.6|PINB.5|PINB.4|PINB.3|PINB.2|PINB.1==1) {
    PORTD.7=1;
    delay_ms(500);
    PORTD.6=1;
    delay_ms(200);
    PORTD.5=1;
    delay_ms(200);
    PORTD.4=1;
    delay_ms(200);
    PORTD.3=1;
    delay_ms(200);
    lcd_clear( );
    lcd_gotoxy(0,0);
    lcd_putsf("feul is"full");
    delay_ms(200);
    }
    else {
    };

    };

    };

    };

    };

    }
    }

جوابی بنویسید

ایمیل شما نشر نخواهد شدخانه های ضروری نشانه گذاری شده است. *

*