Hot answers tagged

2

The short answer is: you'll need at least a bit more circuitry to make this work. Depending on the end goal: buy a sender + receiver kit or revert to analog electronic cirtuits. The long anwser: First things first, since you use a vanila (meaning: using the arduino environment) arduino mega, the sample frequency of the PWM is set to 490Hz (arduino pwm ...


2

I often use the ATtiny13 for little one-off projects that blink LEDs or control timing of external switches (theatrical props). Sometimes I just need them to change an IO pin at a given frequency and literally nothing else. The following is a quick and dirty way to toggle a GPIO using a delay. Note: this is not a timing-accurate nor recommended way to ...


2

It's impossible that this circuit would output -2.5V, since you don't have any negative voltage power supply. The output voltage of the opamp can never exceed the voltage of the power supply rails.


2

It depends on how much current has to flow through the ground wire, its resistance, and the acceptable voltage drop. To minimize ground voltage differences the higher current parts of the circuit should be positioned closer to the power supply. Taking the example of an Arduino controlling a motor, the circuit could look something like this:- simulate this ...


1

solved. servo.h library messes up with the Arduino pwm pins. it disables the 9,10 pins even we havent connected a servo to that. thats the issue here. I have to use another pwm for the motor drivers enable pin


1

There can be several good choices. As of now I think the selection you have done fair enough and should work. The new chosen diode had maximum Reverse voltage of 50 V Rating and it should be okay for a DC motor. If you have a chance, you can choose a diode with higher reverse Vorlage Rating. The \$V_{GS}\$ of chosen new MOSFET is even better than the ...


1

Yes that is possible, see this project where they use a DS1307, a display and a PIC microcontroller to make a real time clock. It should be fairly easy to change the code and make an output drive a relay to switch on/off your lights at certain times. The Arduino isn't the only microcontroller platform. I fail to see the reason why you cannot use an Arduino ...


1

I think I may have found the answer, after some more digging. The RF chip seems to be PL1167. Going through the register datasheet, I can see that register 0x23 is power management (first message that gets sent in my remote), 0x34 is FIFO pointer, 0x32 is FIFO data, 0x07 is TX enable, which coincides very well with what I'm seeing on the traces. The ...


1

Most microcontrollers have a dizzying array of counter-timer features, and it can certainly be tricky to set them up how you want them. The critical information is in chapter 11. 8-bit Timer/Counter0 with PWM of the ATTiny13 datasheet. The place to start is with table 11.8 where you want a mode which goes from BOTTOM (0) to a number you choose OCRA (modes ...


1

You can use an isolated or a high-side current sensor. LEM makes some very good ones (however they are not cheap) that are non-contact- just run a wire through the sensor. There are ICs that work from the high-side shunt and pass a current proportional to the sensed current. For example, the Si8540. You do have to ensure that there are no transients on the ...


1

You could measure currents in that range by using special IC's designed to measure current, for example the ACS724LLCTR. Here you can find all the current sensors offered by digi-key.


1

The ADC has a built in capacitor at it's input. So, you should allow the capacitor to charge slowly to the actual value. If there is high resistance (LDR), it will take more time to charge. Since, you are switching the ADC to different channels, you should give sufficient time for the ADC sampling capacitor to charge. Provide sufficient delay after ...


1

I would divide the byte in two for bitshifting then re-assemble the byte. // First declare the variable uint8_t myData = 0b10000001; bool mode = 0; void setup() { // Setup Shift Register And Write the data byte as declared } void loop() { // Copy the splitted data to two temporary variables. uint8_t a = myData & 0xF0; uint8_t b = myData & ...


1

I ended up using jsotola suggestion, so the code works int latchPin = 11; int clockPin = 9; int dataPin = 12; int dt = 2000; uint8_t n1 = 128, n2 = 1; byte myByte = 0b10000001; //in BIN void setup() { Serial.begin(9600); pinMode(latchPin,OUTPUT); pinMode(dataPin,OUTPUT); pinMode(clockPin,OUTPUT); } //circular shift to the left void loop() { digitalWrite(...


1

A simple workaround is to measure voltage under load and without load. So you can calculate the change in internal resistance. Regarding the capacity of the battery, it is important to know under what discharge conditions this capacity is calculated. Very often this is a 20 hour discharge with low current - conditions too favorable for good results.


Only top voted, non community-wiki answers of a minimum length are eligible