Elektronika.lt
 2024 m. gruodžio 22 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2024 12 22, 19:51. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Arduino pagalba
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Arduino pagalba
PranešimasParašytas: 2013 03 22, 08:41 Pranešti apie taisyklių pažeidimą Atsakyti su citata
korne1
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Sveiki forumiečiai,
Reikalinga pagalba arduino srityje. Niekaip negaliu padaryti, kad per menu galėčiau nustatyti katilo cirkuliacinio siurblio įsijungimą pagal nustatyta temperatūra.
Mano kodas:

#include <LiquidCrystal.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <EEPROM.h>
#define ONE_WIRE_BUS 2 // DS18B20 to D2 pin
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int Backlight =10; // lcd backlight to D10 pin
DeviceAddress Katilas = { 0x28, 0xBF, 0x84, 0x3E, 0x03, 0x00, 0x00, 0x50 };
DeviceAddress Boileris = { 0x28, 0xD0, 0x48, 0x3E, 0x03, 0x00, 0x00, 0xB4 };
// define some values used by the panel and buttons
#define btnRIGHT 4
#define btnUP 1
#define btnDOWN 2
#define btnLEFT 3
#define btnSELECT 5
#define btnNONE 0
float set=20.0;

int motor =12;
int keyPressed;
int adc_key_in = 0; //variable to store raw data from keypad
boolean menu_timer; //variable to test if menu timeout has completed
int read_Key_Pressed()
{ delay (200);
adc_key_in = analogRead(0);
//delay (200);
// read the value from the sensor
// my buttons when read are centered at these valies: 0, 144, 329, 504, 741
// we add approx 50 to those values and check to see if we are close
if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
if (adc_key_in < 50) return btnRIGHT;
if (adc_key_in < 195) return btnUP;
if (adc_key_in < 380) return btnDOWN;
if (adc_key_in < 555) return btnLEFT;
if (adc_key_in < 790) return btnSELECT;

return btnNONE; // when all others fail, return this...
}

void setup()
{
pinMode(Backlight, OUTPUT); //lcd LED kaip isejimas
analogWrite(Backlight, 125);
pinMode(motor,OUTPUT);
lcd.begin(16, 2); // start the library
lcd.begin(16,2);
lcd.print("Termometras v1.0");
lcd.setCursor(4,1);
lcd.print("2013");
delay(2000);// print title msg and pause for 2secs
lcd.clear();
main_routine();


}
void main_routine()
{ keyPressed == 0; //reset key to none
dispDefaultScreen();
keyPressed = read_Key_Pressed(); //scan for key press
//delay(100);
if (keyPressed == 5) //if a key is pressed
{
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Temperatura");
lcd.setCursor(6,1);
lcd.print(set);
}
if (keyPressed == 4)
{
set=set+1;
}
if(keyPressed == 3)
{
set=set-1;
}
else main_routine(); //else loop back to top function
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00)
{
lcd.print("klaida");
} else {
lcd.print(tempC);
}}

void loop() //nothing in here
{

if(sensors.getTempC(Katilas)>set)
{
digitalWrite(motor,HIGH);
}
else if(sensors.getTempC(Katilas)<set)
{
digitalWrite(motor,LOW);
}

}
void dispDefaultScreen()
{
sensors.requestTemperatures();
lcd.setCursor(0,0);
lcd.print("Katilas ");
printTemperature(Katilas);
lcd.write(0b11011111); //laipsnio simbolis
lcd.print("C"); // celsijaus simbolis
lcd.setCursor(0,1);
lcd.print("Boileris ");
printTemperature(Boileris);
lcd.write(0b11011111);
lcd.print("C");
}
 Arduino pagalba
PranešimasParašytas: 2013 03 22, 21:57 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vintikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
nu as nesu specas c# programavime,bet manau truksta sito
main_routine();
{
while (key!=5)
{
// darai ka nori kol nebus key==5
}

}
 Arduino pagalba
PranešimasParašytas: 2013 03 23, 09:16 Pranešti apie taisyklių pažeidimą Atsakyti su citata
korne1
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Pagal tavo pasiūlyta varijanta nepadėjo.
 Arduino pagalba
PranešimasParašytas: 2013 03 23, 16:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vintikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
o tavo kodas isvis veikia? bentjau temperatura rodo.
Nu nesvarbu. neturiu po ranka ds1820.rytoj pabandysiu
 Arduino pagalba
PranešimasParašytas: 2013 03 24, 10:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
korne1
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
Termometras veikia puikiai tik su nustatymais niekaip nesusitvarkau.
 Arduino pagalba
PranešimasParašytas: 2013 06 20, 13:16 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Djsoldiers
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki,
Ar esat kasnors bvandes su arduino irasyti/nuskaityti duomenis is kasetes (senos muzikos kasetes).
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 09:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vintikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Djsoldiers rašo:
Sveiki,
Ar esat kasnors bvandes su arduino irasyti/nuskaityti duomenis is kasetes (senos muzikos kasetes).

O kam to reikia?. Arduino dirba su SD kortom.
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 09:24 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Valdulis
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Vintikas rašo:
Djsoldiers rašo:
Sveiki,
Ar esat kasnors bandes su arduino irasyti/nuskaityti duomenis is kasetes (senos muzikos kasetes).

O kam to reikia?. Arduino dirba su SD kortom.
Ne, nu, blyn... Klausia apie Joną, o atsako – apie sijoną... Very Happy

Gal Tau ir nežinoma, tačiau, be muzikos, tokiose kasetėse praeitame tūkstantmetyje buvo įrašinėjami ir duomenys... Nesakau, kad būtent to (Sinclair ZX Spectrum duomenų) klausėjui reikia, bet – ką gali žinoti?! Confused
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 11:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
I kasete irasyti kaip tris pirstus apmyzt, is kasetes nuskaityti irgi netrabliema, galima ir issifruoti, tik laiko reikia, jei formatas neaiskus.
Bet jei programos autorius nesupranta kam Arduino turi loop() ir kilpuoja rekursija, tai kada jis ismoks atlikti elementarius dalykus ?
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 16:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Vintikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Valdulis rašo:
Vintikas rašo:
Djsoldiers rašo:
Sveiki,
Ar esat kasnors bandes su arduino irasyti/nuskaityti duomenis is kasetes (senos muzikos kasetes).

O kam to reikia?. Arduino dirba su SD kortom.
Ne, nu, blyn... Klausia apie Joną, o atsako – apie sijoną... Very Happy

Gal Tau ir nežinoma, tačiau, be muzikos, tokiose kasetėse praeitame tūkstantmetyje buvo įrašinėjami ir duomenys... Nesakau, kad būtent to (Sinclair ZX Spectrum duomenų) klausėjui reikia, bet – ką gali žinoti?! Confused


Koks tu blin protingas. aciu kad apsvietei.
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 16:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Valdulis
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Vintikas rašo:
aciu kad apsvietei.
Aš Tave nesvieteu, o apšviečiau.
Mokykis, ir Tu būsi protingas. Very Happy
 Arduino pagalba
PranešimasParašytas: 2013 06 23, 22:55 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Djsoldiers
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
AlgisL rašo:
I kasete irasyti kaip tris pirstus apmyzt, is kasetes nuskaityti irgi netrabliema, galima ir issifruoti, tik laiko reikia, jei formatas neaiskus.
Bet jei programos autorius nesupranta kam Arduino turi loop() ir kilpuoja rekursija, tai kada jis ismoks atlikti elementarius dalykus ?

O kaip siulitum jungti ?
 Arduino pagalba
PranešimasParašytas: 2013 06 24, 12:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
djsolder, ka jungti ?
jei mage prie arduino - tai per RCRC filtra/dalikli i mages IN bus isvedimas, o iejime vel RCRC filtras + operacinukas arba BC850C vietoje operacinuko.
OnChange pertrauktyje ivertini micros(), isvedant delayMicroseconds();
nepatikrintas pavyzdys, bet gal suveiks ir is 1 karto
Kodas:

enum {NO_OP = 1, GET_SYNC0, GET_SYNCA, GET_LEN, WAIT_BYTE, BYTE_IN};
unsigned char lineInStatus = NO_OP;
unsigned char lineInChCnt = 0;
unsigned char lineInData;
unsigned char lineInBits;
unsigned int lineInSyncs;
#define lineIn 3  // INT1
#define lineOut 4

void lineOutByte(char data){
    for(char b=0x80; b; b>>=1){
        digitalWrite(lineOut, !digitalRead(lineOut));
        delayMicroseconds(500);
        if(b & data) digitalWrite(lineOut, !digitalRead(lineOut));
        delayMicroseconds(500);   
    }
}

void lineOutBlock(char *buffer, unsigned int count){
char checkSum=0;
    for(char t=1000/8; --t;) lineOutByte(0);
    for(char t=10; --t;) lineOutByte(0xAA);
    lineOutByte(count >> 8);
    lineOutByte(count & 0xFF);
    for(; count; buffer++, count--){
         lineOutByte(*buffer);
         checkSum ^= *buffer;
    }
    lineOutByte(checkSum);
    digitalWrite(lineOut, !digitalRead(lineOut));


void lineInChange(){
static unsigned long time;
   if(lineInStatus == NO_OP) return;
unsigned long t = micros();
long changeDelay = t - time;
    time = t;
    if((changeDelay > 1500) || (changeDelay < 250)){
        if(lineInStatus != GET_SYNC0) lineInStatus = NO_OP;
        return;
    }
    if(lineInChCnt == 0) lineInData <<= 1;
    if(changeDelay > 750){
        if(lineInChCnt == 1){
            lineInStatus = NO_OP;
            return;
        }
       if(lineInBits < 255) lineInBits++;
    }else
        if(++lineInChCnt > 1){
            lineInChCnt = 0;
            lineInData++;     
           if(lineInBits < 255) lineInBits++;
        }
    if(lineInBits >= 8){
        if(lineInStatus == GET_SYNC0){
            if(lineInData == 0xAA){
                lineInBits = 0;
                if(lineInSyncs >= 1000/8/2){
                    lineInStatus = GET_SYNCA;
                    lineInSyncs = 0;
                }else{
                    lineInStatus = NO_OP;
                    return;
                }
            }
            else{
               if(lineInData == 0) lineInSyncs++;
               else lineInSyncs = 0;
               return;
            }
        }
        if(lineInStatus == GET_SYNCA){
            if(lineInData != 0xAA){
                lineInStatus = NO_OP;
                return;
            }
            if(++lineInSyncs >= 10){
                lineInStatus = GET_LEN;
                lineInBits = 0;
                return;
            }
        }
        lineInStatus == BYTE_IN;
        lineInBits = 0;
    }
}

int lineInBlock(char *buffer, unsigned int bufSize){
unsigned int count, bytesRead=0;
char checkSum=0;
    lineInChCnt = 0;
    lineInSyncs = 0;
    lineInStatus = GET_SYNC0;
    while(lineInStatus != GET_SYNCA)
        if(lineInStatus == NO_OP) return 0;
    while(lineInStatus == GET_SYNCA)
        if(lineInStatus == NO_OP) return 0;
    count = lineInData << 8;
    while(lineInStatus == GET_LEN)
        if(lineInStatus == NO_OP) return 0;
    count += lineInData;
    if(count > bufSize) return 0;
    while(bytesRead < count){
        lineInStatus = WAIT_BYTE;
        while(lineInStatus != WAIT_BYTE);
        if(lineInStatus == NO_OP) return 0;
        checkSum ^= lineInData;
        buffer[bytesRead] = lineInData;
        bytesRead++;
    }
    lineInStatus = WAIT_BYTE;
    while(lineInStatus != WAIT_BYTE);
    if(lineInStatus != BYTE_IN){
         lineInStatus = NO_OP;
         return 0;
    }
    lineInStatus = NO_OP;
    if(checkSum != lineInData) return 0;
        else return bytesRead;
}

void setup(){
     pinMode(lineOut, OUTPUT);
     attachInterrupt(1, lineInChange, CHANGE);
}

void loop(){
char buffer[100];
   lineOutBlock(buffer, 100);
int bytesRead = lineInBlock(buffer, 100); 
}
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama