Keresés

Részletes keresés

barkócza Creative Commons License 2018.01.04 0 0 3311

Azért csak rá kéne nézni egy oszcilloszkóppal.

Előzmény: Brandyman (3310)
Brandyman Creative Commons License 2018.01.04 0 0 3310

A hivatalos oldal szerint ez (ha nem állítok be semmi egyebet), akkor ez 490 Hz környéke. 

Ez elég magas ahhoz, hogy ne lássam szemmel...

 

Interferálna valamivel? 

 

https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/

 

Előzmény: barkócza (3309)
barkócza Creative Commons License 2018.01.04 0 0 3309

Valószínűleg azért villog, mert túl alacsony az alapbeállításhoz tartozó frekvencia.

Előzmény: Brandyman (3308)
Brandyman Creative Commons License 2018.01.04 0 0 3308

Sehol. 

Alapbeállításokkal megy...

Előzmény: barkócza (3307)
barkócza Creative Commons License 2018.01.04 0 0 3307

Hol állítod be a pwm frekvenciáját és működési módját?

Előzmény: Brandyman (3305)
Törölt nick Creative Commons License 2018.01.03 0 0 3306

Az elektromos probléma miatt a hobbielektronika.hu-t ajánlom megoldásra.

Előzmény: Brandyman (3305)
Brandyman Creative Commons License 2018.01.02 0 0 3305

Sziasztok, 

 

Készítettem egy akvárium világítás vezérlést, ahol PWM-el szabályzom (IRF510-en keresztül) a LED szalagokat. 

Fehéret, pirosat, kéket. A célom az volt, hogy ne egyszerűen csak be-, vagy kikapcsoljanak a fények, hanem megfelelően dimmelve szimulálja a beesteledést, és a pirkadatot. 

 

Teljesen jól működik, de valamiért az egész zavaróan vibrál.... 

Tettem kondenzátorokat a kimenetekre, - és a bejövő tápra is, - valamelyest javult, de még mindig látni vélem a vibrálást....

 

Van rá valamilyen ötletetek? Találkoztatok ilyesmivel? Lehet, hogy a negyfrekvenciás terhelést nem szereti a táp? 

 

Itt a kód is, a piros és kék szineken van egy 0.75-ös szorzó, mert nem kell a teljes fénye, valamint a kék éjszakára 50-es értéken marad.

 

Köszi előre is! 

 

---------------------------------------

#include <swRTC.h>
swRTC rtc;

 

const byte Value[60] = {255,255,255,255,255,250,245,240,235,230,225,220,215,210,205,200,195,190,185,180,175,170,165,160,155,150,145,140,135,130,125,120,115,110,105,100,95,90,85,80,75,70,65,60,55,50,45,40,35,30,25,20,15,10,5,0,0,0,0,0};

 

byte WhitePin = 9;
byte RedPin = 10;
byte BluePin = 6;

byte PWM;
int hr;
int mins;
int sec;


void setup()
{
rtc.stopRTC(); //stop the RTC
rtc.setTime(20,40,0); //set the time here
rtc.setDate(2,1,2018); //set the date here
rtc.startRTC(); //start the RTC
}

 

void loop()
{
hr = rtc.getHours();
mins = rtc.getMinutes();

 

//Set White
if (hr <= 6) PWM = 0;
if (hr == 7) PWM = Value[59 - mins];
if (hr >= 8 && hr <= 20) PWM = 255;
if (hr == 21) PWM = Value[mins];
if (hr >= 22) PWM = 0;
analogWrite(WhitePin, PWM);

//Set Red
if (hr <= 5) PWM = 0;
if (hr == 6) PWM = Value[59 - mins] * 0.75;
if (hr >= 7 && hr <= 21) PWM = 255 * 0.75;
if (hr == 22)PWM = Value[mins] * 0.75;
if (hr >= 23) PWM = 0;
analogWrite(RedPin, PWM);

 

//Set Blue
if (hr <= 5) PWM = 0;
if (hr == 6) PWM = Value[59 - mins] * 0.75;
if (hr >= 7 && hr <= 21) PWM = 255 * 0.75;
if (hr == 22)PWM = Value[mins] * 0.75;
if (hr >= 23) PWM = 0;
if (PWM < 50) PWM = 50;
analogWrite(BluePin, 50);

 

delay(10000);

}

Törölt nick Creative Commons License 2018.01.02 0 0 3304

DUE-ra feltöltöttem, működik.

 

[code]
#include <DS3231.h>

int Relay0 = 13;
int Relay1 = 5;
int Relay2 = 6;
int Relay3 = 10;

DS3231 rtc(SDA, SCL);
Time t;

const int OnHour0 = 17;
const int OnMin0 = 30;
const int OffHour0 = 17;
const int OffMin0 = 31;
const int OnHour1 = 12;
const int OnMin1 = 26;
const int OffHour1 = 12;
const int OffMin1 = 27;

void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay0, OUTPUT);
digitalWrite(Relay0, LOW);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1, LOW);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, LOW);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, LOW);
}

void loop() {
t = rtc.getTime();
Serial.print(t.hour);
Serial.print(" hour(s), ");
Serial.print(t.min);
Serial.print(" minute(s)");
Serial.println(" ");
delay (1000);

if(t.hour == OnHour0 && t.min == OnMin0){
digitalWrite(Relay0,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour0 && t.min == OffMin0){
digitalWrite(Relay0,LOW);
Serial.println("LIGHT OFF");
}
if(t.hour == OnHour1 && t.min == OnMin1){
digitalWrite(Relay1,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour1 && t.min == OffMin1){
digitalWrite(Relay1,LOW);
Serial.println("LIGHT OFF");
}
}
[/code]

Előzmény: Törölt nick (3303)
Törölt nick Creative Commons License 2018.01.02 0 0 3303

Akkor az általam javasolt kódba írd be a megfelelő reléket, a relékhez tartozó lábakat, időpontokat, bővítsd fel megfelelő relé számig. 

Előzmény: tomi8822 (3302)
tomi8822 Creative Commons License 2018.01.02 0 0 3302

Üdv DS-3231-et.

Előzmény: Törölt nick (3301)
Törölt nick Creative Commons License 2018.01.02 0 0 3301

RTC-nek mit használsz:

DS-1307, vagy DS-3231-et?

Előzmény: tomi8822 (3300)
tomi8822 Creative Commons License 2018.01.01 0 0 3300

Segítenél kijavítani a kódot, hogy működjön?

Előzmény: Törölt nick (3299)
Törölt nick Creative Commons License 2018.01.01 0 0 3299

A loop részben nem fut a program.

Előzmény: tomi8822 (3298)
tomi8822 Creative Commons License 2017.12.31 0 0 3298

Üdv,össze raktam magamnak egy kódot, de nem kapcsol rendesen, segítsetek kijavítani, köszönöm.

 

#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <TimeAlarms.h>
 
RTC_DS1307 RTC;
 
// Start Time Light 1
int sHour = 06;
int sMinute = 40;
int sSecond = 0;

// Start Time Light 2
int s2Hour = 07;
int s2Minute = 00;
int s2Second = 00;

// Start Time Light 3
int s3Hour = 07;
int s3Minute = 20;
int s3Second = 00; 

// Start Time Light 4
int s4Hour = 07;
int s4Minute = 40;
int s4Second = 00;

// Start Time Light 5
int s5Hour = 07;
int s5Minute = 00;
int s5Second = 00;

// Start Time Light 6
int s6Hour = 07;
int s6Minute = 20;
int s6Second = 24; 

// End Time Light 1
int eHour = 17;
int eMinute = 40;
int eSecond = 00;

// End Time Light 2
int e2Hour = 18;
int e2Minute = 00;
int e2Second = 00;

// End Time Light 3
int e3Hour = 18;
int e3Minute = 20;
int e3Second = 00;

// End Time Light 4
int e4Hour = 18;
int e4Minute = 40;
int e4Second = 00;

// End Time Light 5
int e5Hour = 19;
int e5Minute = 00;
int e5Second = 00;

// End Time Light 6
int e6Hour = 19;
int e6Minute = 20;
int e6Second = 00;
 
int lightRelay1 = 9;
int lightRelay2 = 2;
int lightRelay3 = 3;
int lightRelay4 = 4;
int lightRelay5 = 5;
int lightRelay6 = 6;

void setup() {
  // Set the relay to off immediately
  digitalWrite(lightRelay1, HIGH);
  digitalWrite(lightRelay2, HIGH);
  digitalWrite(lightRelay3, HIGH); 
  digitalWrite(lightRelay4, HIGH);
  digitalWrite(lightRelay5, HIGH);
  digitalWrite(lightRelay6, HIGH); 
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
   
  // Set the pinmode
  pinMode(lightRelay1, OUTPUT);
  pinMode(lightRelay2, OUTPUT);
  pinMode(lightRelay3, OUTPUT);
  pinMode(lightRelay4, OUTPUT);
  pinMode(lightRelay5, OUTPUT);
  pinMode(lightRelay6, OUTPUT);
  
  // Notify if the RTC isn't running
  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running");
  }
 
  // Get time from RTC
  DateTime current = RTC.now();
  DateTime compiled = DateTime(__DATE__, __TIME__);
  if (current.unixtime() < compiled.unixtime()) {
    Serial.println("RTC is older than compile time! Updating");
    RTC.adjust(DateTime(__DATE__, __TIME__));    
  }
    
   // Use RTC time to set the start time1
  setTime(sHour, sMinute, sSecond, current.day(), current.month(), current.year());
  time_t s = now();
  
   // Use RTC time to set the start time2
  setTime(s2Hour, s2Minute, s2Second, current.day(), current.month(), current.year());
  time_t s2 = now();
  
   // Use RTC time to set the start time3
  setTime(s3Hour, s3Minute, s3Second, current.day(), current.month(), current.year());
  time_t s3 = now();
  
   // Use RTC time to set the start time4
  setTime(s4Hour, s4Minute, s4Second, current.day(), current.month(), current.year());
  time_t s4 = now();
  
   // Use RTC time to set the start time5
  setTime(s5Hour, s5Minute, s5Second, current.day(), current.month(), current.year());
  time_t s5 = now();
  
   // Use RTC time to set the start time6
  setTime(s6Hour, s6Minute, s6Second, current.day(), current.month(), current.year());
  time_t s6 = now();
  
   // Use RTC time to set the end time1
  setTime(eHour, eMinute, eSecond, current.day(), current.month(), current.year());
  time_t e = now();
  
   // Use RTC time to set the end time2
  setTime(e2Hour, e2Minute, e2Second, current.day(), current.month(), current.year());
  time_t e2 = now();
  
   // Use RTC time to set the end time3
  setTime(e3Hour, e3Minute, e3Second, current.day(), current.month(), current.year());
  time_t e3 = now();
  
   // Use RTC time to set the end time4
  setTime(e4Hour, e4Minute, e4Second, current.day(), current.month(), current.year());
  time_t e4 = now();
  
   // Use RTC time to set the end time5
  setTime(e5Hour, e5Minute, e5Second, current.day(), current.month(), current.year());
  time_t e5 = now();
  
   // Use RTC time to set the end time6
  setTime(e6Hour, e6Minute, e6Second, current.day(), current.month(), current.year());
  time_t e6 = now();
  
   // Use RTC time to set the current time
  setTime(current.hour(), current.minute(), current.second(), current.day(), current.month(), current.year());  
  time_t n = now();
  
  // Test if grow light should be on
  if (s <= n && n <= e) {
    digitalWrite(lightRelay1, LOW);  // Sets the grow light "on"
  }
  if (s2 <= n && n <= e2) {
    digitalWrite(lightRelay2, LOW);  // Sets the grow light "on"
  }
  if (s3 <= n && n <= e3) {
    digitalWrite(lightRelay3, LOW);  // Sets the grow light "on"
  }
  if (s4 <= n && n <= e4) {
    digitalWrite(lightRelay4, LOW);  // Sets the grow light "on"
  }
  if (s5 <= n && n <= e5) {
    digitalWrite(lightRelay5, LOW);  // Sets the grow light "on"
  }
  if (s6 <= n && n <= e6) {
    digitalWrite(lightRelay6, LOW);  // Sets the grow light "on"
  }
  Alarm.alarmRepeat(sHour, sMinute, sSecond, Light1On);
  Alarm.alarmRepeat(eHour, eMinute, eSecond, Light1Off);
  Alarm.alarmRepeat(s2Hour, s2Minute, s2Second, Light2On);
  Alarm.alarmRepeat(e2Hour, e2Minute, e2Second, Light2Off);
  Alarm.alarmRepeat(s3Hour, s3Minute, s3Second, Light3On);
  Alarm.alarmRepeat(e3Hour, e3Minute, e3Second, Light3Off);
  Alarm.alarmRepeat(s4Hour, s4Minute, s4Second, Light4On);
  Alarm.alarmRepeat(e4Hour, e4Minute, e4Second, Light4Off);
  Alarm.alarmRepeat(s5Hour, s5Minute, s5Second, Light5On);
  Alarm.alarmRepeat(e5Hour, e5Minute, e5Second, Light5Off);
  Alarm.alarmRepeat(s6Hour, s6Minute, s6Second, Light6On);
  Alarm.alarmRepeat(e6Hour, e6Minute, e6Second, Light6Off);
}
 
void loop() {
  DateTime now = RTC.now();
  setTime(now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());
   
  Serial.print("Current time: ");
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(' ');
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
     
  Serial.println();
  Alarm.delay(600000);
}
void Light1On() {
  Serial.println("Turning Light 1 On");
  digitalWrite(lightRelay1, LOW);
}
void Light1Off() {
  Serial.println("Turning Light 1 Off");
  digitalWrite(lightRelay1, HIGH);
}
 void Light2On() {
  Serial.println("Turning Light 2 On");
  digitalWrite(lightRelay2, LOW);
}
void Light2Off() {
  Serial.println("Turning Light 2 Off");
  digitalWrite(lightRelay2, HIGH);
}
 void Light3On() {
  Serial.println("Turning Light 3 On");
  digitalWrite(lightRelay3, LOW);
}
void Light3Off() {
  Serial.println("Turning Light 3 Off");
  digitalWrite(lightRelay3, HIGH);
}
 void Light4On() {
  Serial.println("Turning Light 4 On");
  digitalWrite(lightRelay4, LOW);
}
void Light4Off() {
  Serial.println("Turning Light 4 Off");
  digitalWrite(lightRelay4, HIGH);
}
 void Light5On() {
  Serial.println("Turning Light 5 On");
  digitalWrite(lightRelay5, LOW);
}
void Light5Off() {
  Serial.println("Turning Light 5 Off");
  digitalWrite(lightRelay5, HIGH);
}
 void Light6On() {
  Serial.println("Turning Light 6 On");
  digitalWrite(lightRelay6, LOW);
}
void Light6Off() {
  Serial.println("Turning Light 6 Off");
  digitalWrite(lightRelay6, HIGH);
}

Törölt nick Creative Commons License 2017.12.27 0 0 3297

Ez alapján mennie kell:

[code]
#include <DS3231.h>

int Relay0 = 4;
int Relay1 = 5;
int Relay2 = 6;
int Relay3 = 13;

DS3231 rtc(SDA, SCL);
Time t;

const int OnHour0 = 12;
const int OnMin0 = 24;
const int OffHour0 = 12;
const int OffMin0 = 25;
const int OnHour1 = 12;
const int OnMin1 = 26;
const int OffHour1 = 12;
const int OffMin1 = 27;

void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay0, OUTPUT);
digitalWrite(Relay0, LOW);
pinMode(Relay1, OUTPUT);
digitalWrite(Relay1, LOW);
pinMode(Relay2, OUTPUT);
digitalWrite(Relay2, LOW);
pinMode(Relay3, OUTPUT);
digitalWrite(Relay3, LOW);
}

void loop() {
t = rtc.getTime();
Serial.print(t.hour);
Serial.print(" hour(s), ");
Serial.print(t.min);
Serial.print(" minute(s)");
Serial.println(" ");
delay (1000);

if(t.hour == OnHour0 && t.min == OnMin0){
digitalWrite(Relay0,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour0 && t.min == OffMin0){
digitalWrite(Relay0,LOW);
Serial.println("LIGHT OFF");
}
if(t.hour == OnHour1 && t.min == OnMin1){
digitalWrite(Relay1,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour1 && t.min == OffMin1){
digitalWrite(Relay1,LOW);
Serial.println("LIGHT OFF");
}
}
[/code]

Előzmény: tomi8822 (3296)
tomi8822 Creative Commons License 2017.12.27 0 0 3296

Üdv, úgy kellene kapcsolnom a reléket hogy pl az egyes relé bekapcsol 12:10-kor és ki kapcsol 18:10-kor.

A kettes relé bekapcsol pl 10:10 kor és kikapcsol 20:10-kor, és így tovább ahogy a példa programban is van.

Előzmény: Törölt nick (3295)
Törölt nick Creative Commons License 2017.12.27 0 0 3295

// relay8_Demo
// Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
// web: http://www.RinkyDinkElectronics.com/
//
// A quick demo of most of the library functions.
//

// Include our library :)
#include <relay8.h>

// Declare what pins our relays are connected to.
// relay8 supports from 1 to 8 relays.
relay8 relay(2, 3, 4, 5, 6, 7, 8, 9);

void setup()
{
// Nothing special is needed here
}

void loop()
{
// Switch the first relay on and off a couple of times
for (int t=0; t<3; t++)
{
relay.on(1);
delay(500);
relay.off(1);
delay(500);
}

// Switch the last relay on and off a couple of times
for (int t=0; t<3; t++)
{
relay.on(relay.numberOfRelays());
delay(500);
relay.off(relay.numberOfRelays());
delay(500);
}

// Switch all relays on and off a couple of times
for (int t=0; t<3; t++)
{
relay.allOn();
delay(500);
relay.allOff();
delay(500);
}

// Cycle through all relays slowly from the first to the last
// then a little faster back down again
for (int t=0; t<3; t++)
{
relay.cycleUp();
relay.cycleDown(100);
}

// Switch on all relays in sequence then switch then all off
// again a little faster
for (int t=0; t<3; t++)
{
relay.chaseUpOn(500);
relay.chaseUpOff();
}

// Switch on all relays in sequence then switch then all off
// again a little faster. This time in the opposite direction
for (int t=0; t<3; t++)
{
relay.chaseDownOn();
relay.chaseDownOff(100);
}
}

Előzmény: tomi8822 (3294)
tomi8822 Creative Commons License 2017.12.27 0 0 3294

Üdv, köszönöm a segítséget, de úgy szeretném megoldani hogy mind a 6db relé külön adott időben be és ki kapcsolni ahogy a példa programban is van 1db relével.

Esetleg tudsz abban még segíteni hogy ez hogy nézne ki kész program formájában?

Előzmény: Törölt nick (3293)
Törölt nick Creative Commons License 2017.12.27 0 0 3293

int lightRelay1 = 2;

int lightRelay2 = 3;

int lightRelay3 = 4;

int lightRelay4 = 5;

int lightRelay5 = 6;

int lightRelay6 = 7;

 

vagy az általad választott digitális kimenet, minden reléhez külön.

Előzmény: tomi8822 (3292)
tomi8822 Creative Commons License 2017.12.26 0 0 3292

Üdv, valaki tudna segíteni nekem?
Ezt a programot szeretném használni de úgy hogy 6 db relét tudjak egyesével időre kapcsolni, lényegében 6 relére kéne kibővíteni. Eggyel működik gond nélkül.

// Date and time functions using a DS3231 RTC connected via I2C and Wire Lib

#include <Wire.h>
#include <RTClib.h>
#include <Time.h>
#include <TimeAlarms.h>

RTC_DS1307 RTC;

// Start Time
int sHour = 11;
int sMinute =30;
int sSecond = 0;

// End Time
int eHour = 11;
int eMinute = 30;
int eSecond = 4;

int lightRelay = 2;

void setup() {
// Set the relay to off immediately
digitalWrite(lightRelay, HIGH);

Serial.begin(9600);
Wire.begin();
RTC.begin();

// Set the pinmode
pinMode(lightRelay, OUTPUT);

// Notify if the RTC isn't running
if (! RTC.isrunning()) {
Serial.println("RTC is NOT running");
}

// Get time from RTC
DateTime current = RTC.now();
DateTime compiled = DateTime(__DATE__, __TIME__);
if (current.unixtime() < compiled.unixtime()) {
Serial.println("RTC is older than compile time! Updating");
RTC.adjust(DateTime(__DATE__, __TIME__));
}

// Use RTC time to set the start time
setTime(sHour, sMinute, sSecond, current.day(), current.month(), current.year());
time_t s = now();

// Use RTC time to set the end time
setTime(eHour, eMinute, eSecond, current.day(), current.month(), current.year());
time_t e = now();

// Use RTC time to set the current time
setTime(current.hour(), current.minute(), current.second(), current.day(), current.month(), current.year());
time_t n = now();

// Test if grow light should be on
if (s <= n && n <= e) {
digitalWrite(lightRelay, LOW); // Sets the grow light "on"
}

Alarm.alarmRepeat(sHour, sMinute, sSecond, LightOn);
Alarm.alarmRepeat(eHour, eMinute, eSecond, LightOff);
}

void loop() {
DateTime now = RTC.now();
setTime(now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());

Serial.print("Current time: ");
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();

Serial.println();
Alarm.delay(1000);
}

void LightOn() {
Serial.println("Turning Light On");
digitalWrite(lightRelay, LOW);
}

void LightOff() {
Serial.println("Turning Light Off");
digitalWrite(lightRelay, HIGH);
}

gamb1t Creative Commons License 2017.12.22 0 0 3291

Köszönöm a válaszát, a switch-case ügyet vmi kiguglizott fórumon olvastam , hogy jelen esetben vmi konstans hibára hivatkozik

Előzmény: Vargham (3290)
Vargham Creative Commons License 2017.12.22 0 0 3290

else if (1<kaka<2){

Warning comparisons like 'X<=Y<=Z' do not have their mathematical meaning

Tehát ez neked hülyeség, hiába helyes C programkód.

Ezt jelenti: Először kiértékeli ezt: 1 < kaka, ennek az eredménye egy bool lesz (true vagy false). Utána pedig megvizsgálja, hogy a kapott bool kisebb-e, mint 2, ami definíció szerint mindig true.

Helyette ez az alak használatos:

else if (1 < kaka && kaka < 2) {

De szép változóneved van...

> Mivel a switch-case-t egyáltalán nem tudtam működésre bírni (ahogy olvastam nem igazán működik az arduinon)

Pedig működik. Hol olvastál ilyet?

Előzmény: gamb1t (3288)
gamb1t Creative Commons License 2017.12.22 0 0 3289

Az előzőhöz nem mentek fel a képek, itt egy h mégis h néz ki a dolog...

gamb1t Creative Commons License 2017.12.22 0 0 3288

sziasztok


első project, egy plotterről leolvasott értéket duplázva (0-10) szeretném megoldani, h az 5 ledem közül felvillanjon az értéknek megfelelő számú (0-2-ig 1, 2-4-ig 2 stb..), és az érték(kerekítvenyilván) megjelenjen egy 7szegmensű kijelzőn. Ennek ugye egyszerű az emélete, mégsem jön össze. Külön külön minden tökéletesen működik, de nem tudom összehozni az egészet egyszerre. Nem a hivatalos arduino-m van, hanem vmi copy (ebayen az első ha rákeresel h arduino uno).

 

Mivel a switch-case-t egyáltalán nem tudtam működésre bírni (ahogy olvastam nem igazán működik az arduinon), elkezdtem az if-eket. 0 és 1 tökéletesen működik, prímán meg is jelenik a kis kijelzőn, ég a megfelelő LED, alles gut, but onnantól az istenért se menne tovább. A kód külön működik, de valamiért nem akar a program belépni oda ahová kellene...

 

int pinA = 6;
int pinB = 5;
int pinC = 2;
int pinD = 3;
int pinE = 4;
int pinF = 7;
int pinG = 8;

 

void setup() {
//serialmonitor
Serial.begin(9600);

//7segment
pinMode ( pinA, OUTPUT);
pinMode ( pinB, OUTPUT);
pinMode ( pinC, OUTPUT);
pinMode ( pinD, OUTPUT);
pinMode ( pinE, OUTPUT);
pinMode ( pinF, OUTPUT);
pinMode ( pinG, OUTPUT);

//LEDs
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
}

void loop() {

int sensorValue = analogRead(A0);
float voltage = sensorValue * (5.0 / 1023.0);
float kaka = voltage*2;
Serial.println(kaka);


if (kaka<1) {
digitalWrite (pinA, HIGH);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, HIGH);
digitalWrite (pinD, HIGH);
digitalWrite (pinE, HIGH);
digitalWrite (pinF, HIGH);
digitalWrite (pinG, LOW);
digitalWrite (9, HIGH);}
else if (1<kaka<2){
digitalWrite (pinA, LOW);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, HIGH);
digitalWrite (pinD, LOW);
digitalWrite (pinE, LOW);
digitalWrite (pinF, LOW);
digitalWrite (pinG, LOW);
digitalWrite (9, HIGH);}
else if (2<kaka<3){
digitalWrite (pinA, HIGH);
digitalWrite (pinB, HIGH);
digitalWrite (pinC, LOW);
digitalWrite (pinD, HIGH);
digitalWrite (pinE, HIGH);
digitalWrite (pinF, LOW);
digitalWrite (pinG, HIGH);
digitalWrite (9, HIGH);
digitalWrite (10, HIGH);}
}

 

 

Ha az "else if (2<kaka<3)"-at átírom sima "if (2<kaka<3)"-ra akkor abba lép be, megjelenik a 2-es a kijelnzőn és ég a 2 led az értéktől függetlenül. A képen látjátok h jól működik a plotter, ha a fent leírt kód fut akkor 0 és 1 között tud váltani, aztán nemtom, elfogy a tudomány ha tovább kéne állni. A programozás terén IS kezdő vagyok de azért szerintem itt nem ejtettem olyan nagy hibát. 

 

Mit csinálok rosszul ? Előre is köszi (L)

ui.: kusza a kapcsolás, de külön letesztelve minden működik...

 

Krommer84 Creative Commons License 2017.12.22 0 0 3287

Sziasztok kezdőként vettem egy Arduino r3-at és szeretnék egy léptetőmotor vezérlő projektet az alábbi link alapján:

https://hobbielektronikabolt.blogspot.hu/2017/11/lepteto-motor-vezerlese-uln2003.html

 

elvileg mindent megcsináltam, de hiba üzentet kapok.

 

Beállításaim:

 

http://i63.tinypic.com/30tgdud.jpg

 

Hiba üzenet:

 

Arduino: 1.6.10 (Linux), Board: "Arduino Uno"

WARNING: Category '' in library EEPROM is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SPI is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library SoftwareSerial is not valid. Setting to 'Uncategorized'
WARNING: Category '' in library Wire is not valid. Setting to 'Uncategorized'
Warning: platform.txt from core 'Arduino AVR Boards' contains deprecated recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{build.path}/{archive_file}" "{object_file}", automatically converted to recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}". Consider upgrading this core.
signal: bad system call (core dumped)
Error compiling for board Arduino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

 

 

Kérem valaki világosítson fel mit csinálok rosszul?

Tomiali Creative Commons License 2017.12.19 0 0 3286

Sziasztok. Használja itt valaki a virtuinot? 

ruzsa janos Creative Commons License 2017.12.17 0 0 3285

van egy bitburner program, ami a mndenki által használt avrdude dos-os programot használva nagyon kellemes grafikus felületen működik. töltsd le.

nekem egy USBtiny klón ISP programozóm van, azzal működik. 

mondjuk azért tanultam meg bootloadert feltenni, mert ezzel az ISP programozóval sikerült törölnöm az eredetit :)

(én csak az olvasásvédő "fuse"-okat akartam átbillenteni. hát nem elsőre sikerült)

 

Előzmény: gyerek67 (3283)
gyerek67 Creative Commons License 2017.12.17 0 0 3284

Átmértük az USB csatit, szépen átmegy a CH340-re.

Előzmény: gyerek67 (3283)
gyerek67 Creative Commons License 2017.12.17 0 0 3283

Köszi a válaszodat!

Szép fényesnek, egészségeseknek tűnnek az USB csati forrasztások, de mindjárt kimérem őket.

Ezt a bootloader dolgot hogyan kellene csinálnom?

Van itthon egy CP2102-es adapterem itthon. Az való a feladathoz?

 

Üdv: Viktor

Előzmény: ruzsa janos (3282)
ruzsa janos Creative Commons License 2017.12.17 0 0 3282

vagy leszakaft az usb csatlakozo, olyanom mar volt.

ha bootloader, akkor az ISP porton tudpod ratolteni.

de eloszor multimeterrel az usb, szerintem

Előzmény: gyerek67 (3281)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!