You can give them to your Pokemon when you migrate from Ruby and Sapphire. You can also find them on your pokewalker on any of the beaches. They are more common in the routes that take longer to unlock. I haven't seen any in the actual game.
Go to www.pokemonwifi.org, they will answer any questions you have.
.
use thief on wild luvdisc that swarm next to beginning town
You can find them in one of the routes on the pokewalker.
Rock smash the rocks in the Ruins of Alph or use the Dowsing Machine.
Chat with our AI personalities
Heart Scales can be purchased in the Pokeathlon shop for 1000P
Heart scales can typically be found underground by using the Explorer Kit.
You cannot find heart scales there. You have to go underground, go digging, and maybe you'll find one.
You can smash rocks randomly to try to get one. If you don't want to go through trial and error, you can earn 1000 points in the Pokeathlon and trade them for a Heart Scale.
you can trade pokemon from heartgold to black but you can only transfer the pokemon in heartgold not trade it from black