Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.

ATmega-Man's Content

There have been 15 items by ATmega-Man (Search limited from 28-April 23)


By content type

See this member's

Sort by                Order  

#33450 Ethernet shield diagram help...

Posted by ATmega-Man on 11 August 2012 - 06:19 PM in General Discussion

I have an attic full of old PC components so I'm pretty confident I will have most, if not all of the required bits'n'bobs to create my own breadboard Ethernet shield. However, I cant find a schematic to make one. Can anyone help with this? Thanks



#24192 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 13 February 2012 - 08:18 PM in General Discussion

I had a minor fail with the battery and I've managed to blow the motor controller, I'll get another one and try again. In the mean time I have some ultrasonic distance sensors to play with.



#24092 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 11 February 2012 - 10:40 AM in General Discussion

Hi Stefan, Just a quick update on my diag process. I ran the code at half speed - same problem Built and ran the code on my arduino mega - same problem Arduino mega at half speed - same problem Arduino configured to use seperate H Bridges - same problem Alternate motors - same problem Now i dont know the draw on other motors as they are inside a broken toy car of my sons but it ran on 4x 1.5v AA batteries in usual situe. So it cant be that much ampage, im guessing theyre 1.5v considering the other functions required from the 6v. I'm going to dismantle the battery today and see if running it on 3c 6v instead of 6c 12v is the solution. And i may try 2c if it improves slightly. If that doesnt work then i can only asume i have a dud board. Unless you can think of any other ideas?



#24061 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 01:22 PM in General Discussion

Sounds like a plan, as I mentioned before, I did that too.

You could also get motors that match more the rest of the equipment in specifications (the H-bridge chip and the battery)

the only issue with that is getting one that fits the tamiya dual gearbox as thats whats driving the chassis.

I'm also gonna bite the bullet and set this up on the Arduino and see if the issue persists. that way i'll know if its power/shield related and it will be easier to check if running one motor per H Bridge is any better



#24059 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 12:53 PM in General Discussion

ripping the battery appart isnt a massive issue as its just a string of NiMh cells bundled up and taped, as for the current drain I really dont know what to do. if I run the same code but disconnect one of the motors it runs fine. would it be worth lowering the speed in the code to see if it runs at half pace?



#24057 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 10:59 AM in General Discussion

I can dismantle the battery im using down to lower V's and A's as its just a laptop battery I pulled out of its casing and taped up. what sort of levels would you suggest? its a 6 cell



#24055 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 10:36 AM in General Discussion

How did you connect the motors at this moment?

I would suggest different motors. I myself used these on a 12V battery: http://www.pololu.co...og/product/2208
Because those motors don't live long on >9V, I decided not to set dutycycle higher as 75, so I wouldn't exceed 9V.


Ps. I've ordered the same shield recently, hopefully I'll get it soon. Perhaps I could help you out better if I have one as well ;)


It has a jumper to allow either Neduino powered or external powered, so I just take the external off and set the jumper



#24054 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 10:34 AM in General Discussion

It's true the Netduino has only 4 PWM-ports, where Arduino has 6.

From the schematics of the shield:


With the Go-Between Shield you could re-route those PWMs if you like.


mmm, would it be worth breadboarding it to test?



#24050 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 10 February 2012 - 09:33 AM in General Discussion

Hi Stefan, how are you? What sort of power supply would you suggest? I can run it off the USB with the Netduino but I get the same result its just slower



#24031 Help - Overheating and voltage drop on motor shield

Posted by ATmega-Man on 09 February 2012 - 10:31 PM in General Discussion

Hi Guys, this is driving me nuts!!
I have bought an adafruit style motor shield and for some reason it seems to be suffering from a voltage drop and the L293D thats in use overheats.
Im using it with a tamiya tracked chassis and the dual motor gearbox.
The demo code I am using sends both motors through the same L293D (M3 & M4) although there are two available across 4 channels, now I think this is due to the netduinos lack of PWMs.
the code runs but the motors rapidly grind to a halt getting slower and slower, and the temp of the L293D goes through the roof.
Now i recon shifting one of the motors to the other L293D will fix the problem but I'm not sure the Netduino will let that happen due to the PWMs but as my knowledge of it is really slim im hoping im wrong.
Can anyone help me workout why this is happening and if there is an easy solution.

Im using a 6c 11.1v 5200MaH battery

Motor Shield details
Motor Shield schem
Motors (x2)

Heres the code
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;

namespace MotorApp
{
    public class Program
    {
        public sealed class MotorShield
        {
            public const Cpu.Pin PWM_0A = Pins.GPIO_PIN_D6; // M4
            public const Cpu.Pin PWM_0B = Pins.GPIO_PIN_D5; // M3

            private static MotorShield _instance = new MotorShield();
            public static MotorShield Instance { get { return _instance; } }

            private OutputPort _motorLatch;
            private OutputPort _motorClock;
            private OutputPort _motorEnable;
            private OutputPort _motorData;

            internal byte LatchState = 0x00;

            private MotorShield()
            {
                _motorLatch = new OutputPort(Pins.GPIO_PIN_D12, false);
                _motorClock = new OutputPort(Pins.GPIO_PIN_D4, false);
                _motorEnable = new OutputPort(Pins.GPIO_PIN_D7, false);
                _motorData = new OutputPort(Pins.GPIO_PIN_D8, false);
            }

            internal void LatchTx()
            {
                //LATCH_PORT &= ~_BV(LATCH);
                _motorLatch.Write(false);

                //SER_PORT &= ~_BV(SER);
                _motorData.Write(false);

                for (int i = 0; i < 8; i++)
                {
                    //CLK_PORT &= ~_BV(CLK);
                    _motorClock.Write(false);

                    int mask = (1 << (7 - i));
                    if ((LatchState & mask) != 0)
                    {
                        //SER_PORT |= _BV(SER);
                        _motorData.Write(true);
                    }
                    else
                    {
                        //SER_PORT &= ~_BV(SER);
                        _motorData.Write(false);
                    }
                    //CLK_PORT |= _BV(CLK);
                    _motorClock.Write(true);
                }
                //LATCH_PORT |= _BV(LATCH);
                _motorLatch.Write(true);
            }
        }

        public sealed class DcMotor
        {
            private PWM _pwm;
            private byte _motorBitA, _motorBitB;

            public DcMotor(MotorHeaders header)
            {
                switch (header)
                {
                    case MotorHeaders.M3:
                        _motorBitA = (int)MotorBits.Motor3_A;
                        _motorBitB = (int)MotorBits.Motor3_B;
                        _pwm = new PWM(MotorShield.PWM_0B);
                        break;
                    case MotorHeaders.M4:
                        _motorBitA = (int)MotorBits.Motor4_A;
                        _motorBitB = (int)MotorBits.Motor4_B;
                        _pwm = new PWM(MotorShield.PWM_0A);
                        break;
                    default:
                        throw new InvalidOperationException("Invalid motor header specified.");
                }

                MotorShield.Instance.LatchState &= (byte)(~(1 << _motorBitA) & ~(1 << _motorBitB));
                MotorShield.Instance.LatchTx();

                _pwm.SetPulse(100, 0);
            }

            public void Run(MotorDirection dir)
            {
                switch (dir)
                {
                    case MotorDirection.Release:
                        MotorShield.Instance.LatchState &= (byte)(~(1 << _motorBitA));
                        MotorShield.Instance.LatchState &= (byte)(~(1 << _motorBitB));
                        break;
                    case MotorDirection.Forward:
                        MotorShield.Instance.LatchState |= (byte)(1 << _motorBitA);
                        MotorShield.Instance.LatchState &= (byte)(~(1 << _motorBitB));
                        break;
                    case MotorDirection.Reverse:
                        MotorShield.Instance.LatchState &= (byte)(~(1 << _motorBitA));
                        MotorShield.Instance.LatchState |= (byte)(1 << _motorBitB);
                        break;
                    default:
                        throw new InvalidOperationException("Invalid motor direction specified");
                }

                MotorShield.Instance.LatchTx();
            }

            public void SetSpeed(uint speed)
            {
                if (speed > 100)
                {
                    speed = 100;
                }

                _pwm.SetDutyCycle(speed);
            }
        }

        public enum MotorBits
        {
            Motor4_A = 0,
            Motor4_B = 6,
            Motor3_A = 5,
            Motor3_B = 7
        }

        public enum MotorDirection
        {
            Release, Forward, Reverse
        }

        public enum MotorHeaders
        {
            M3, M4
        }
        public static void Main()
        {
            DcMotor leftWheel = new DcMotor(MotorHeaders.M4);
            DcMotor rightWheel = new DcMotor(MotorHeaders.M3);

            leftWheel.SetSpeed(0);
            rightWheel.SetSpeed(0);

            leftWheel.Run(MotorDirection.Forward);
            rightWheel.Run(MotorDirection.Forward);

            leftWheel.SetSpeed(90);
            rightWheel.SetSpeed(90);

            while (true)
            {
                leftWheel.Run(MotorDirection.Reverse);
                rightWheel.Run(MotorDirection.Forward);

                Thread.Sleep(1000);

                leftWheel.Run(MotorDirection.Forward);
                rightWheel.Run(MotorDirection.Reverse);

                Thread.Sleep(1000);
            }
        }
    }
}

eternally greatful!!



#22955 Books/Education

Posted by ATmega-Man on 18 January 2012 - 06:43 PM in General Discussion

Ill give it a shot, the LCD has like 20 pins that I'm gonna have to mess with and all the code to get it to work so that can wait until im in the mood for a couple of hours of pain.



#22948 Books/Education

Posted by ATmega-Man on 18 January 2012 - 04:52 PM in General Discussion

Sounds like a plan! I have an KS108 chipset LCD that I think is gonna cause issues and a motor controller that could be an issue but other that I should be ok Thanks mate



#22946 Books/Education

Posted by ATmega-Man on 18 January 2012 - 03:54 PM in General Discussion

Awesome, so unless I'm mistaken the batterys fine and the only thing that will have an issue are my arduino shields and bits that are 5v output dependent?



#22944 Books/Education

Posted by ATmega-Man on 18 January 2012 - 03:42 PM in General Discussion

Hi Stefan, thanks for the prompt reply and post approval. I didn't get the plus I only got the basic version and spent the £20 saved on loads of sensors due to arrive from the far east in a week or so. I'll have a look at the links you've posted and see where it leads me. Can you answer me one question? The Arduino Mega I have runs on 5v now I know the Netduino runs on 3.5v but I can plug anything upto 12v into the Ardu and it will throttle the voltage down, will the Netduino do the same? I ask as I have a 11.1v 3600MaH battery on a tracked chassis that I'd like to use but I'd rather check if it will blow my board up before I do it. Thanks again for your help



#22941 Books/Education

Posted by ATmega-Man on 18 January 2012 - 03:14 PM in General Discussion

Hi all, my Netduino arived from SKPang today (excelent service!) I've come from Arduino because the syntax just doesn't make any sense to me. I've come from a .net background with loads of VB.net experience and a little C#. I'm looking for some good Netduino books/tutorials/educational resources to get me started, any help would be apriciated. Thanks Adam




home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.