der pin PB0 ist nicht der erste, sondern der nullte pin. deshalb musst du sozusagen die 1 um null stellen verschieben: (1<<0).

übrigens, wenn du die verschieberei sparen willst, geht auch folgendes:

(1<<0) = 1
(1<<1) = 2
(1<<2) = 4
(1<<3) = 8
(1<<4) = 16
(1<<5) = 32
(1<<6) = 64
(1<<7) = 128

du kannst also zum wählen von PD2 als ausgang folgendes schreiben:
DDRD |= 4;

in deinem programm musst du für die led PB0 nehmen, NICHT PB1!!

rd und gn hast du richtig bemerkt.

pwms sind schwieriger, das mache ich in 2 wochen wenn ich selbst wieder internet zuhause habe.