Recent Posts

Pages: [1] 2 3 ... 10
1
Deutsch / Re: [OT] Wireless Lampenfassun...
Last post by Muecke - Today at 08:13 am
Vielleicht ist für den Zweck auch der Itead Slampher interessant. Das ist eine Fassung wie die oben verlinkte, enthält aber einen umprogramierbaren ESP8266. Damit ist die Fassung frei nach eigenen Wünschen sowohl per Wifi wie auch 433Mhz schaltbar.
Siehe: http://tinkerman.cat/new-firmware-for-the-slampher/
Leider ist mein englisch echt schlecht, wenn ich das jedoch richtig verstanden habe, wurde das Teil gehackt? so das man mit dem noch etwas mehr machen kann wie normal?

Auf der Produktseite Sonoff Slampher: 433MHz RF&WiFi Smart Light Bulb Holder habe ich hoffentlich richtig entnommen.

1. Ich kann x beliebige viele miteinander verbinden die zusammen an bzw. aus gehen.
2. ich kann die Über ein APP Steuern, solange die Teile in meinem Home W-Lan eingewählt sind und ich eine Internet Verbindung habe.
3. man kann die teile auch über eine RF Fernbedienung ansteuern, egal mit welcher. Da man jedes teil auf das Signal Programmiren kann.

und man kann eine Neue Firmware aufspielen, was mir das Bringt habe ich jedoch noch nicht ganz verstanden.


Die teile kosten das Selbe wie die bei Amazon, Interessant finde ich bei denen das man die zusammen hängend Programmiren kann, sollten es mal mehr als 4 Lampen bei mir werden die ich zusammen Schließen möchte dann kann ich das einfach erweitern und habe dennoch nur einen Drücker.

Die bei Amazon muss ich alle einzeln einschalten, die sind nicht in einer Gruppe zusammen zu fassen.


Dadurch werden die andern echt sehr interessant.


Jetzt bin ich hin und her gerissen.

Wenn ich mir die aus deinem Link bestelle dann ist das alles in Englisch oder Russisch was ich da als Anleitung bekomme, ob ich das dann hinbekomme das die auch bei mir laufen, ... :-(.


Gruß Mücke
2
Thanks horace.  If there is a double post I apologize but it was inadvertent - some slip of the key fingers  :smiley-sad-blue:

I used volatiles as you suggested but still have the problem.  I suspect bouncing when the switch is depressed, although a secondary run (or runs) of the interrupt can occur when the button is released.  I can't figure why the ISR should run on release of the button but sometimes I get multiple re-runs on button release.

Current code included a debounce delay
Code: [Select]

// constants
// button one
const int buttonOnePin = 2;
// button two
const int buttonTwoPin = 3;


// global variables
// booleans changed by ISRs
volatile bool buttonOneHot = false, buttonTwoHot = false;
// the following variables are unsigned longs because the time,
//  measured in milliseconds, will quickly become a bigger number
//  than can be stored in an int.
// the last time the output pin was toggled
unsigned long lastDebounceTime = 0;
// the debounce time; increase if the output flickers
unsigned long debounceDelay = 50;   


// forward declarations
// interrupt service routines
void buttonOnePressed();
void buttonTwoPressed();
// debounce delay
void delayForDebounce(unsigned long lastDebounceTime);


/*==========================================*/


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

// tell 'em who we are, man
Serial.println("     buttonInterruptPassData.ino");
Serial.println();

// initialize pins
pinMode(buttonOnePin, INPUT);
pinMode(buttonTwoPin, INPUT);

// initialize debounce time
lastDebounceTime = millis();

// hook up the interrupts
attachInterrupt(digitalPinToInterrupt(buttonOnePin),
buttonOnePressed, RISING);
attachInterrupt(digitalPinToInterrupt(buttonTwoPin),
buttonTwoPressed, RISING);
}  //  end setup()


   /*==========================================*/


void loop()
{
// display data from ISRs
if (buttonOneHot)
{
Serial.println("buttonOne has been pressed");
buttonOneHot = false;
}

if (buttonTwoHot)
{
Serial.println("buttonTwo has been pressed");
buttonTwoHot = false;
}
}  //  end loop()


   /*==========================================*/


   // interrupt service routines
   /*
   You cannot attach more that one interrupt to any one pin, so, if
   you need two or more reactions they have to be on the basis of a
   decision made inside the ISR.
   Also, we are advised against using Serial inside an interrupt
   http://gammon.com.au/interrupts
   if we need to move information in and out we use 'volatile'
   variables.
   */
void buttonOnePressed()

{
noInterrupts();
delayForDebounce(lastDebounceTime);
buttonOneHot = true;
interrupts();
}  // end buttonOnePressed()


void buttonTwoPressed()

{
noInterrupts();
delayForDebounce(lastDebounceTime);
buttonTwoHot = true;
interrupts();
}  // end buttonTwoPressed()



   // debounce delay
void delayForDebounce(unsigned long lastDebounceTime)
{
// wait for debounce period
while (!(millis() - lastDebounceTime) > debounceDelay) {};
lastDebounceTime = millis();
}


Still have the problem!  :'(

Is my debouncing right?  Haven't tried that before.
3
Hardware / Re: [RISOLTO] Encoder rotativo...
Last post by Mazz1983 - Today at 08:00 am
Molto più semplice usare il push button per fare il toggle kHz/MHz e poi usare gli impulsi encoder per variare la frequenza, per intercettare l'encoder va bene un interrupt come ti hanno consigliato.

Il progetto originale prevedeva questa soluzione, che è perfetta se l'output è un display lcd (1602 per esempio).
Fai lampeggiare l'underscore sotto i kHz o i MHz e sai cosa stai regolando.
Però come output ho previsto un 7 segmenti ad 8 cifre, e non volevo punti decimali lampeggianti come ho visto in altri progetti, non mi piace.

Grazie comunque a tutti, di nuovo.
4
HC-05 bluetooth modole connected to the Arduino via hardware or software serial.
Why would you add a bluetooth module to a bluetooth capable device (esp32) ?
5
Deutsch / Re: [OT] Wireless Lampenfassun...
Last post by Muecke - Today at 07:53 am
Perfekt, danke, ich dachte schon es gibt was neues was ich nicht kennen würde. mit der E27 bzw. E29.


Das selbe was Uwe gesehen hat,
Quote
... Das Produkt kann 362-Grad-Fernbedienung, ...
ist mir auch sehr merkwürdig vorgekommen, Jedoch die Idee mit der Englischen Scheite ist ganz gut, ich aber nur das .de zum .com gemacht in meinem Link, und Siehe an das E29 gibt es dort nihct und es heißt auch,

Quote
The product can achieve 360 degree remote control, ideal choice for smart upgrade lighting.
Da ich kein Englisch kann dann ich das zwar nicht Übersätzen jedoch Sehe ich das da 360 und nicht 362 steht.
Daher ist das ein Typfehler fürs deutsche.

Gruß Mücke
6
hi
i want to use gy271 HMC5883 .
i use this code :
Code: [Select]
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>

/* Assign a unique ID to this sensor at the same time */
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);

void displaySensorDetails(void)
{
  sensor_t sensor;
  mag.getSensor(&sensor);
  Serial.println("------------------------------------");
  Serial.print  ("Sensor:       "); Serial.println(sensor.name);
  Serial.print  ("Driver Ver:   "); Serial.println(sensor.version);
  Serial.print  ("Unique ID:    "); Serial.println(sensor.sensor_id);
  Serial.print  ("Max Value:    "); Serial.print(sensor.max_value); Serial.println(" uT");
  Serial.print  ("Min Value:    "); Serial.print(sensor.min_value); Serial.println(" uT");
  Serial.print  ("Resolution:   "); Serial.print(sensor.resolution); Serial.println(" uT"); 
  Serial.println("------------------------------------");
  Serial.println("");
  delay(500);
}

void setup(void)
{
  Serial.begin(9600);
  Serial.println("HMC5883 Magnetometer Test"); Serial.println("");
 
  /* Initialise the sensor */
  if(!mag.begin())
  {
    /* There was a problem detecting the HMC5883 ... check your connections */
    Serial.println("Ooops, no HMC5883 detected ... Check your wiring!");
    while(1);
  }
 
  /* Display some basic information on this sensor */
  displaySensorDetails();
}

void loop(void)
{
  /* Get a new sensor event */
  sensors_event_t event;
  mag.getEvent(&event);
 
  /* Display the results (magnetic vector values are in micro-Tesla (uT)) */
  Serial.print("X: "); Serial.print(event.magnetic.x); Serial.print("  ");
  Serial.print("Y: "); Serial.print(event.magnetic.y); Serial.print("  ");
  Serial.print("Z: "); Serial.print(event.magnetic.z); Serial.print("  ");Serial.println("uT");

  // Hold the module so that Z is pointing 'up' and you can measure the heading with x&y
  // Calculate heading when the magnetometer is level, then correct for signs of axis.
  float heading = atan2(event.magnetic.y, event.magnetic.x);
 
  // Once you have your heading, you must then add your 'Declination Angle', which is the 'Error' of the magnetic field in your location.
  // Find yours here: http://www.magnetic-declination.com/
  // Mine is: -13* 2' W, which is ~13 Degrees, or (which we need) 0.22 radians
  // If you cannot find your Declination, comment out these two lines, your compass will be slightly off.
  float declinationAngle = 0.22;
  heading += declinationAngle;
 
  // Correct for when signs are reversed.
  if(heading < 0)
    heading += 2*PI;
   
  // Check for wrap due to addition of declination.
  if(heading > 2*PI)
    heading -= 2*PI;
   
  // Convert radians to degrees for readability.
  float headingDegrees = heading * 180/M_PI;
 
  Serial.print("Heading (degrees): "); Serial.println(headingDegrees);
 
  delay(500);
}


and the result in serial monitor is :
Code: [Select]
HMC5883 Magnetometer Test

------------------------------------
Sensor:       HMC5883
Driver Ver:   1
Unique ID:    12345
Max Value:    800.00 uT
Min Value:    -800.00 uT
Resolution:   0.20 uT
------------------------------------



then i used this code :
Code: [Select]
#include <Wire.h>
#include <HMC5883L.h>
HMC5883L compass;
void setup()
{
 Serial.begin(9600);
 Wire.begin();
 compass = HMC5883L();
 compass.SetScale(1.3);
 compass.SetMeasurementMode(Measurement_Continuous);
}
void loop()
{
 MagnetometerRaw raw = compass.ReadRawAxis();
 MagnetometerScaled scaled = compass.ReadScaledAxis();
 float xHeading = atan2(scaled.YAxis, scaled.XAxis);
 if(xHeading < 0) xHeading += 2*PI;
 if(xHeading > 2*PI) xHeading -= 2*PI;
 float xDegrees = xHeading * 180/M_PI;
 Serial.println(xDegrees);
 delay (1000);
}


and result in serial monitor is: (i dont move sensor !!!!)
Code: [Select]
179.30
46.23
141.17
27.48
179.10
0.53
45.96
0.23
0.23
45.86
53.02
26.57
173.09
169.70
0.29
179.93
30.07

 
and with out attaching sensor it continues !!!!
Code: [Select]
222.54
178.32
177.21
178.29
179.10
200.85
178.25
219.76
26.73
243.76
178.20
181.94
91.52
178.16
15.15
166.60
2.51
272.55
157.56
150.75
150.57
3.59
45.16
2.97
2.74
2.55
46.89
136.39
45.15


is it working good  :)  :)  :smiley-eek-blue:
7
Bar Sport / Re: Science Nerd Jokes
Last post by TomGeorge - Today at 07:50 am
I could tell you the one about the constipated mathematician, but nnnaaa  not a Science Joke

Oh.. okay

He had to work it out with a pencil.
8
Project Guidance / Re: transistor as a switch pro...
Last post by TomGeorge - Today at 07:47 am
Hi,
Did you read post #8 regarding parasitic power and low side switching?

Tom.... :)
9
Deutsch / Re: Bürstenmotor mit ESC über ...
Last post by dony - Today at 07:45 am
Hallo,

Hier geht es in etwa um das selbe.
Da hat offensichtlich ein analogWrite(pin, 128); // (0-255) geholfen. Ließ Dir das durch, es würde jetzt wenig Sinn machen, dasselbe hier nochmals zu posten.

Nur das wichtigste: Solche Systeme funktionieren manchmal so: 0 = Rückwärts aber Stopp, 60 = langsam Rückwärts, 127 = Vollgas Rückwärts. 128 oder 90° = Stopp und 129-255 ist Vorwärts, 255 = Vollgas.

lg dony
10
Running the divisor on the arduino for the PWM at 32 at the moment as if i run it at 1 or 8 I end up with excessive heat quite likely because that particular fet is not exactly a fast switching one. A bit more buzzing however given the mechanics of the reciprocating gear etc you cant hear it that well.
You are using PWM library rather than analogWrite ?
Tom... :)
Pages: [1] 2 3 ... 10